注意到开平方区间和开平方不等于开平方后区间和,故 update 中 `if(x<=l&&r<=y)` 应改为 `if(l == r)`
by hayzxjr @ 2024-02-21 11:20:01
并且 lz 似乎忘记了 `maxl` 的用处,在 update 中并没有剪去无效下传。应改为:
```cpp
if(x<=mid && maxl[ls] > 1) update(ls,l,mid,x,y);
if(y>mid && maxl[rs] > 1) update(rs,mid+1,r,x,y);
```
by hayzxjr @ 2024-02-21 11:21:57
@[hayzxjr](/user/530030)
已过,thx
by lunjiahao @ 2024-02-21 11:23:02