自查出来了,```update```函数里更新写忘乘区间长度了。
```cpp
if(lf == s && rt == t){
p->sum += val, p->lz_add += val;
return ;
}
```
应该是
```cpp
if(lf == s && rt == t){
p->sum += val * (rt - lf + 1), p->lz_add += val;
return ;
}
```
此帖结。
by 6k823 @ 2024-03-12 19:48:19