自己写动态开点线段树,永久化标记,然后测出来有问题。。。
求助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);
}
}