问一个问题
查看原帖
问一个问题
317568
AuKr楼主2020/10/26 08:01

在修改函数中:

void turn(int k,int l,int r,ll x)
{
	if(a[k].lazy) lazydown(k);
	if(a[k].l==l&&a[k].r==r)
	{
		a[k].sum+=(a[k].r-a[k].l+1)*x;
		a[k].lazy+=x;
		return;
	}
	int mid=(a[k].l+a[k].r)>>1;
	if(r<=mid) turn(k<<1,l,r,x);
	else if(l>mid) turn(k<<1|1,l,r,x);
	else turn(k<<1,l,mid,x),turn(k<<1|1,mid+1,r,x);
	update(k);
}

为什么也需要 lazydown 呢?

我感觉没有也可以吧......

2020/10/26 08:01
加载中...