社区讨论
爆零,求条
P8818[CSP-S 2022] 策略游戏参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhjgzep3
- 此快照首次捕获于
- 2025/11/04 02:24 4 个月前
- 此快照最后确认于
- 2025/11/04 02:24 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,q;
int maxz[100005][32],minz[100005][32],maxf[100005][32],minf[100005][32];//A数组正数最大,正数最小,负数最大,负数最小
int maxx[100005][32],minn[100005][32];//B数组最大最小
int a[100005],b[100005];
void inita(){
for(int len=1;(1<<len)<=n;len++){
for(int l=1;l+(1<<len)<=n;l++){
maxz[l][len]=max(maxz[l][len-1],maxz[l+(1<<len-1)][len-1]);
minz[l][len]=min(minz[l][len-1],minz[l+(1<<len-1)][len-1]);
maxf[l][len]=max(maxf[l][len-1],maxf[l+(1<<len-1)][len-1]);
minf[l][len]=min(minf[l][len-1],minf[l+(1<<len-1)][len-1]);
}
}
}
void initb(){
for(int len=1;(1<<len)<=m;len++){
for(int l=1;l+(1<<len)<=m;l++){
maxx[l][len]=max(maxx[l][len-1],maxx[l+(1<<len-1)][len-1]);
minn[l][len]=min(minn[l][len-1],minn[l+(1<<len-1)][len-1]);
}
}
}
int q1(int l,int r){
int k=log2(r-l+1);
return max(maxz[l][k],maxz[r-(1<<k)+1][k]);
}
int q2(int l,int r){
int k=log2(r-l+1);
return min(minz[l][k],minz[r-(1<<k)+1][k]);
}
int q3(int l,int r){
int k=log2(r-l+1);
return max(maxf[l][k],maxf[r-(1<<k)+1][k]);
}
int q4(int l,int r){
int k=log2(r-l+1);
return min(minf[l][k],minf[r-(1<<k)+1][k]);
}
int q5(int l,int r){
int k=log2(r-l+1);
return max(maxx[l][k],maxx[r-(1<<k)+1][k]);
}
int q6(int l,int r){
int k=log2(r-l+1);
return min(minn[l][k],minn[r-(1<<k)+1][k]);
}
int work(int l1,int r1,int l2,int r2){
int a=q1(l1,r1)*q6(l2,r2);
int b=q2(l1,r1)*q6(l2,r2);
int c=q3(l1,r1)*q5(l2,r2);
int d=q4(l1,r1)*q5(l2,r2);
return max({a,b,c,d});
}
int main(){
cin>>n>>m>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>0) {maxz[i][0]=minz[i][0]=a[i];maxf[i][0]=-1e9;minf[i][0]=a[i];}
else if(a[i]<0) {maxf[i][0]=minf[i][0]=a[i];maxz[i][0]=a[i];minz[i][0]=1e9;}
else maxz[i][0]=minz[i][0]=maxf[i][0]=minf[i][0]=a[i];
}
for(int i=1;i<=m;i++){
cin>>b[i];
maxx[i][0]=minn[i][0]=b[i];
}
while(q--){
int l1,l2,r1,r2;
cin>>l1>>r1>>l2>>r2;
cout<<work(l1,r1,l2,r2)<<endl;
}
return 0;
}
马蜂不好,见谅
回复
共 2 条回复,欢迎继续交流。
正在加载回复...