求助!
查看原帖
求助!
671774
LUlululu1616楼主2022/5/21 10:25
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=4e5+5;
struct node
{
	int ans,l,r,len;
	int ll,rr;
} tr[maxn<<2];
int n,m,d[maxn];
struct Segtree
{
	inline void pushup(node &t,node x,node y)
	{
		t.ans=max(x.ans,max(y.ans,max(x.r,y.l)));
		if(!d[x.rr]||!d[y.ll]||(d[x.rr]<0&&d[y.ll]>0))
		{
			t.l=x.l,t.r=y.r;
			return;
		}
		t.ans=max(t.ans,x.r+y.l);
		if(x.l==x.len)
			t.l=x.l+y.l;
		else
			t.l=x.l;
		if(y.r==y.len)
			t.r=y.r+x.r;
		else
			t.r=y.r;
		return;
	}
	inline void build(int l,int r,int t)
	{
		tr[t].ll=l,tr[t].rr=r;
		tr[t].len=r-l+1;
		if(l==r)
		{
			if(d[l])
				tr[t].l=tr[t].r=tr[t].ans=1;
			else
				tr[t].l=tr[t].r=tr[t].ans=0;
			return;
		}
		int mid=l+r>>1;
		build(l,mid,t<<1),build(mid+1,r,t<<1|1);
		pushup(tr[t],tr[t<<1],tr[t<<1|1]);
		return ;
	//	cout <<l<<" "<<r<<" "<<tr[t].val<<" "<<(tr[t].l?1:0)<<" "<<(tr[t].r?1:0)<<endl;
	}
	inline void modify(int l,int r,int pos,int val,int t)
	{
		if(l==r)
		{
			d[l]+=val;
			tr[t].l=tr[t].r=tr[t].ans=0;
			if(d[l])
				tr[t].l=tr[t].r=tr[t].ans=1;
			return ;
		}
		int mid=l+r>>1;
		if(pos<=mid)
			modify(l,mid,pos,val,t<<1);
		else
			modify(mid+1,r,pos,val,t<<1|1);
		pushup(tr[t],tr[t<<1],tr[t<<1|1]);
		return ;
	}
//	node query(int l,int r,int x,int y,int t)
//	{
//		if(x<=l&&r<=y)
//			return tr[t];
//		int mid=l+r>>1;
//		node xx,yy,ans;
//		if(x<=mid)
//			xx=query(l,mid,x,y,t<<1);
//		if(mid<y)
//			yy=query(mid+1,r,x,y,t<<1|1);
//		//cout <<l<<" "<<mid<<" "<<mid+1<<" "<<r<<endl;
//		pushup(ans,xx,yy);
//		return ans;
//	}
} a;
int xx[maxn];
signed main()
{
	cin >>n;
	for(int i=1;i<=n;i++)
		cin >>xx[i];
	for(int i=1;i<n;i++)
		d[i]=xx[i+1]-xx[i];
	a.build(1,n-1,1);
	cin >>m;
	while(m--)
	{
		if(n!=1)
		{
			int x,y,w;
			cin >>x>>y>>w;	
			if(x!=1)
				a.modify(1,n-1,x-1,w,1);
			if(y!=n)
				a.modify(1,n-1,y,-w,1);
			cout <<tr[1].ans+1<<endl;
		}
		else
			cout <<1<<endl;
	}
	exit(0);
	return 0;
}

一份极为正常的代码,为什么会RE?

RE信息:

Runtime Error.
Exit code is 2147483647
Program exited with code 2147483647.

求助各位大佬

2022/5/21 10:25
加载中...