线段树都不会的屑
  • 板块学术版
  • 楼主Prean
  • 当前回复26
  • 已保存回复26
  • 发布时间2020/7/10 20:48
  • 上次更新2023/11/6 23:19:20
查看原帖
线段树都不会的屑
160839
Prean楼主2020/7/10 20:48

自己写动态开点线段树,永久化标记,然后测出来有问题。。。

求助dalao/kel

void change(int&u,int l,int r,int val,int L=1,int R=n){
	if(L>r||R<l)return;
	if(!u)u=++tot;
	if(l<=L&&r>=R)return void(t[u].lazy+=val);
	else t[u].val+=val*(min(R,r)-max(L,l)+1);
	if(L<R){
		int mid=L+R>>1;
		change(t[u].L,l,r,val,L,mid);
		change(t[u].R,l,r,val,mid+1,R);
	}
}
ll query(int u,int l,int r,int L=1,int R=n){
	if(L>r||R<l||!u)return 0;
	if(l<=L&&r>=R)return t[u].val+t[u].lazy*(R-L+1);
	if(L<R){
		int mid=L+R>>1;
		ll sum=0;
		if(L<=l&&R>=r)sum=t[u].lazy*(r-l+1);
		return sum+query(t[u].L,l,r,L,mid)+query(t[u].R,l,r,mid+1,R);
	}
}
2020/7/10 20:48
加载中...