帮看看为何MLE
  • 板块灌水区
  • 楼主gxy189
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/7/24 15:56
  • 上次更新2024/7/24 16:37:00
查看原帖
帮看看为何MLE
745381
gxy189楼主2024/7/24 15:56
#include<iostream>
#include<cmath>
#define MaxN 100005
using namespace std;
int tr[MaxN*4][4][2],num1,num2;
int n,m,q,b[4][2][MaxN],a[MaxN];
void build(int c,int l,int r,int k1,int k2){
	if(l==r){
		tr[c][k1][k2]=b[k1][k2][l];  //k1->min_0 2 or max_1 3,k2->a_0 or b_1
		return;
	}
	int mid=(l+r)/2;
	build(c*2,l,mid,k1,k2);
	build(c*2+1,mid+1,r,k1,k2);
	if(k1%2==0) tr[c][k1][k2]=min(tr[c*2][k1][k2],tr[c*2+1][k1][k2]);
	else tr[c][k1][k2]=max(tr[c*2][k1][k2],tr[c*2+1][k1][k2]);
}
int query(int c,int l,int r,int x,int y,int k1,int k2){
	if(l==x&&r==y){
		return tr[c][k1][k2];
	}
	int mid=(l+r)/2;
	if(x>mid) return query(c*2+1,mid+1,r,x,y,k1,k2);
	if(y<=mid) return query(c*2,l,mid,x,y,k1,k2);
	if(x<=mid&&y>mid){
		if(k1%2==0) return min(query(c*2,l,mid,x,mid,k1,k2) , query(c*2+1,mid+1,r,mid+1,y,k1,k2));
		else return max(query(c*2,l,mid,x,mid,k1,k2) , query(c*2+1,mid+1,r,mid+1,y,k1,k2));
	}
}
int main()
{
	cin>>n>>m>>q;
	int num1=0;num2=0;
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		a[i]=a[i-1];
		if(x<0){
			b[1][0][++num1]=x;
			b[2][0][num1]=x;
		}
		else{
			b[0][0][++num2]=x;
			b[3][0][num2]=x;
			a[i]++; 
		}
	}
	for(int j=1;j<=m;j++){
		cin>>b[0][1][j];
		b[1][1][j]=b[0][1][j];
	}
	build(1,1,num1,1,0);
	build(1,1,num2,0,0);
	build(1,1,num1,2,0);
	build(1,1,num2,3,0);
	build(1,1,m,0,1);
	build(1,1,m,1,1);
	while(q--){
		int ans;
		int l1,r1,l2,r2;
		cin>>l1>>r1>>l2>>r2;
		int afmax=query(1,1,num1,l1-a[l1-1],r1-a[r1],1,0);
		int azmin=query(1,1,num2,a[l1-1]+1,a[r1],0,0);
		int afmin=query(1,1,num1,l1-a[l1-1],r1-a[r1],2,0);
		int azmax=query(1,1,num2,a[l1-1]+1,a[r1],3,0);
		int bmax=query(1,1,m,l2,r2,1,1);
		int bmin=query(1,1,m,l2,r2,0,1);
		if(bmax<0) cout<<afmin*bmax;
		else if(bmin>0) cout<<azmax*bmin;
		else cout<<max(afmax*bmax,azmin*bmin);
		cout<<"\n";
//		cout<<afmax<<' '<<azmin<<' '<<bmax<<' '<<bmin<<endl;
//		cout<<ans<<"\n"; 
	}
	return 0;
}
2024/7/24 15:56
加载中...