萌新求助主席树板子
查看原帖
萌新求助主席树板子
234783
conprour楼主2021/11/15 11:26
void update(int &k,int pre,int l,int r,int x)
	{
		if(!k) k=++tot;
		sum[k]=sum[pre]+1;
		if(l==r) return void(sum[k]=1);
		if(x<=mid) update(ls[k],ls[pre],l,mid,x),rs[k]=rs[pre];
		else update(rs[k],rs[pre],mid+1,r,x),ls[k]=ls[pre];
	}

update 函数里面,l==r的时候我多赋值了一次sum[k]=1,然后就 20 WA了。删掉之后A了。都到叶子了,多赋值一次为什么会错啊?

2021/11/15 11:26
加载中...