蒟蒻求助各方大佬QWQ 玄关
查看原帖
蒟蒻求助各方大佬QWQ 玄关
1208949
Q_Linda楼主2024/12/20 18:58

luogu全部RE(本地全WA)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e5 + 10;
const ll MIN = 1e18 + 10;
ll n,m,q;
ll amax[N][30],amin[N][30],afax[N][30],azin[N][30];
ll bmax[N][30],bmin[N][30];
ll ans;
int main(){
	scanf("%lld%lld%lld",&n,&m,&q);
	ll x;
	for(int i = 1;i <= n;i++){
		scanf("%lld",&x);
		amax[i][0] = amin[i][0] = x;
		if(x <= 0)
			afax[i][0] = x;
		else 
			afax[i][0] = -MIN;
		if(x >= 0)
			azin[i][0] = x;
		else
			azin[i][0] = MIN;
	}
	for(int i = 1;i <= m;i++){
		scanf("%lld",&x);
		bmax[i][0] = bmin[i][0] = x;
	}
	int k1 = log2(n);
	for(int j = 1;j <= k1;j++){
		for(int i = 1;i + (1 << j) - 1 <= n;i++){
			amax[i][j] = max(amax[i][j - 1],amax[i + (1 << (j - 1))][j - 1]);
			amin[i][j] = min(amin[i][j - 1],amin[i + (1 << (j - 1))][j - 1]);
			afax[i][j] = max(afax[i][j - 1],afax[i + (1 << (j - 1))][j - 1]);
			azin[i][j] = min(azin[i][j - 1],azin[i + (1 << (j - 1))][j - 1]);
		}
	}
	int k2 = log2(m);
	for(int j = 1;j <= k2;j++){
		for(int i = 1;i + (1 << j) - 1 <= m;i++){
			bmax[i][j] = max(bmax[i][j - 1],bmax[i + (1 << (j - 1))][j - 1]);
			bmin[i][j] = min(bmin[i][j - 1],bmin[i + (1 << (j - 1))][j - 1]);
		}
	}
	ll l,r,L,R;
	while(q--){
		scanf("%lld%lld%lld%lld",&l,&r,&L,&R);
		ll l1 = log2(r - l + 1);
		ll r1 = log2(R - L + 1);
		ll l2 = r - (l1 * 2) + 1;
		ll r2 = R - (r2 * 2) + 1;
		ll mx = max(amax[l1][r1],amax[l2][r2]);
		ll mn = min(amin[l1][r1],amin[l2][r2]);
		ll fx = max(amax[l1][r1],amax[l2][r2]);
		ll zn = min(azin[l1][r1],azin[l2][r2]);
		ll bx = max(bmax[l1][r1],bmax[l2][r2]);
		ll bn = min(bmin[l1][r1],bmin[l2][r2]);
		if(mx >= 0)
			mx *= bn;
		else
			mx = bx;		
		ans = max(ans,mx);
		if(mn >= 0)
			mn *= bn;
		else
			mn *= bx;
		ans = max(ans,mn);
		if(fx != MIN){
			if(fx >= 0)
				fx *= bn;
			else
				fx *= bx;		
			ans = max(ans,fx);
		}
		if(zn != MIN){
			if(zn >= 0)
				zn *= bn;
			else
				zn *= bx;		
			ans = max(ans,zn);
		}
		printf("%lld\n",ans);
	}
	return 0;
}
2024/12/20 18:58
加载中...