求助-SCP-S复赛-策略游戏

P8818 [CSP-S 2022] 策略游戏

敲错字了,是csp不是scp,抱歉!
by Tim147147 @ 2022-11-22 14:09:32


如果这题暴力能过,那这题也不配放在s组了
by Dream_weavers @ 2022-11-22 14:12:52


@[Dream_weavers](/user/572482) 那也不至于0分吧?
by Tim147147 @ 2022-11-22 14:16:28


@[Dream_weavers](/user/572482) 但是暴力有60(
by newbie_QwQ @ 2022-11-22 14:20:53


@[Quhaoran123](/user/535491) 错误的,暴力有85
by BFSDFS123 @ 2022-11-22 14:30:45


```cpp #define INF (1<<31-1); ``` INF这么小?
by 幽竹烟雨 @ 2022-11-22 14:32:12


刚刚找到问题了 c = a[i]*b[j];应改为c = (long long)a[i]*b[i];忘记数据类型的转换。 另外,INF用小了,换成LLONG_MAX,这就暴力就可以拿60分了. 谢谢大家! ```cpp #include<bits/stdc++.h> using namespace std; const int maxn = 100001; int a[maxn],b[maxn]; int n,m,q; long long res[maxn]; int main() { cin >> n >> m >> q; for(int i=1; i<=n; i++) cin >> a[i] ; for(int i=1; i<=m; i++) cin >> b[i]; for(int k=1; k<=q; k++) { int l1,r1,l2,r2; cin >> l1 >> r1 >> l2 >> r2; long long max_v = -LLONG_MAX; for(int i=l1; i<=r1; i++) { long long min_v = LLONG_MAX; for(int j=l2; j<=r2; j++) { long long c; c = (long long)a[i]*b[j]; if(c<min_v) min_v = c; } if(min_v>max_v) max_v = min_v; } res[k] = max_v; } for(int k=1; k<=q; k++) cout << res[k] << endl; return 0; } ```
by Tim147147 @ 2022-11-22 14:49:24


怎么刚打完字刷新一下就发现问题了()建议还是用INT_MAX这种编译器带的形式 反正我复赛没开longlong见祖宗了
by amxxxxx @ 2022-11-22 14:53:30


建议用 `numeric_limits<long long>::max()`
by qwasd @ 2022-11-22 15:16:11


|