85pts求查

P8818 [CSP-S 2022] 策略游戏

中间英语语法有问题,请忽略哈哈
by zymooll @ 2022-11-03 13:34:59


看讨论区下面我的帖子 f1&&f2里面有问题
by Tom22l @ 2022-11-03 17:51:21


hack: input: ``` 10 10 1000 -15647 -8678 -25079 -724 9065 21135 -29319 -22875 7503 13761 -7213 -13874 22722 -30189 -20964 -16675 -16614 -1112 -9241 -19212 4 10 9 10 1 8 3 10 7 10 7 9 5 6 6 9 ``` output: ``` 270936879 -16450728 32602728 -151158875 ``` your output: ``` 270936879 -16450728 32602728 4611686018427387904 ```
by AllureLove2410 @ 2022-11-03 20:46:36


@[zymooll](/user/289296)
by AllureLove2410 @ 2022-11-03 20:47:12


应该是哪里出了小问题
by AllureLove2410 @ 2022-11-03 20:48:51


@[AllureLove2410](/user/556455) 大概晓得了,把我的那个初始值 ```INT_MAX``` 搞出来了
by zymooll @ 2022-11-04 11:14:56


加了两个 ```if``` 之后 90pts 了,你给的这个hack也能过
by zymooll @ 2022-11-04 11:23:18


@[AllureLove2410](/user/556455)
by zymooll @ 2022-11-04 11:23:45


```cpp while(q--){ int l1=read(),r1=read(),l2=read(),r2=read(); Type L=search1(1,l1,r1),Q=search2(1,l2,r2); //cerr<<L.maxn_z<<" "<<L.minn_z<<" "<<L.maxn_f<<" "<<L.minn_f<<" "<<L.zero<<"\n"; //cerr<<Q.maxn_z<<" "<<Q.minn_z<<" "<<Q.maxn_f<<" "<<Q.minn_f<<" "<<Q.zero<<"\n"; int f1=(L.maxn_z!=INT_MIN&&Q.maxn_f==INT_MIN);//i have Z,but y have not F int f2=(L.maxn_f!=INT_MIN&&Q.maxn_z==INT_MIN);//i have F,but y have not Z if(f1&&f2){ cout<<max(L.maxn_z*Q.minn_z,L.minn_f*Q.maxn_f)<<endl; } else if(f1){ cout<<L.maxn_z*Q.minn_z<<endl; } else if(f2){ cout<<L.minn_f*Q.maxn_f<<endl; } else{ if(L.zero)cout<<0<<endl; else if(L.minn_z==INT_MAX&&Q.minn_f==INT_MAX){ cout<<L.maxn_f*Q.maxn_z<<endl; } else if(L.minn_f==INT_MAX&&Q.minn_z==INT_MAX){ cout<<L.minn_z*Q.minn_f<<endl; } else cout<<max(L.minn_z*Q.minn_f,L.maxn_f*Q.maxn_z)<<endl; } } ```
by zymooll @ 2022-11-04 11:25:14


|