WA40浸湿后人
查看原帖
WA40浸湿后人
877767
hhhppp楼主2024/10/20 19:35

错误如下:

1、维护区间最值最小要开-1e18,最大要1e18

2、贪心思路有问题,请参考以下代码

		int maxb=tree_findb1(1,l2,r2);//B序列的最大值 
		int minb=tree_findb2(1,l2,r2);//B序列的最小值 
		int maxa=tree_finda1(1,l1,r1);//A序列的最大值
		int mina=tree_finda4(1,l1,r1);//A序列的最小值 
		int zmina=tree_finda2(1,l1,r1);//A序列非负数的最小值 
		int fmaxa=tree_finda3(1,l1,r1);//A序列非正数的最大值 
		if(maxa<=0){
			if(maxb<=0){
				ypy=mina*maxb;
			}
			else{
				ypy=maxa*maxb;
			}
		}
		else if(mina>=0){
			if(minb>=0){
				ypy=maxa*minb;
			}
			else{
				ypy=mina*minb;
			}
		}
		else{
			if(maxb<=0){
				ypy=mina*maxb;
			}
			else if(minb>=0){
				ypy=maxa*minb;
			}
			else ypy=max(zmina*minb,fmaxa*maxb);
		}
2024/10/20 19:35
加载中...