警示后人
查看原帖
警示后人
548999
As_Snow楼主2024/3/22 15:09
void updateMin(int u,int L,int R,int l,int r,int k) {
   if(l<=L&&R<=r&&tr[u].mmx<k) {
      int d=tr[u].mxa-k;
      tr[u].sum-=(ll)tr[u].cnt*d;
      tr[u].mxa=k,tr[u].tag1-=d;
      return ;
   }
   pushdown(u);
   if(l<=mid&&k<tr[ls].mxa) updateMin(ls,L,mid,l,r,k);
   if(r> mid&&k<tr[rs].mxa) updateMin(rs,mid+1,R,l,r,k);
   pushup(u);
}

如果 updateMin 写法和我一样的,需要先判断根节点的 mxa 大于 k 在进入函数

2024/3/22 15:09
加载中...