@[Kketchup](/user/551760) 两个错误:
```cpp
push_down()...
t[ls].dat2+=2*t[p].lazy*t[ls].dat1+(t[ls].r-t[ls].l+1)*t[p].lazy*t[p].lazy;
t[rs].dat2+=2*t[p].lazy*t[rs].dat1+(t[rs].r-t[rs].l+1)*t[p].lazy*t[p].lazy;
update()...
if(l<=t[p].l&&t[p].r<=r){
t[p].dat2+=2*k*t[p].dat1+k*k*(t[p].r-t[p].l+1);
t[p].dat1+=(t[p].r-t[p].l+1)*k;
t[p].lazy+=k;
return ;
}
```
by ademik @ 2023-11-02 20:50:12
亲亲
by MC小萌新 @ 2023-11-02 20:51:49
@[ademik](/user/750173) 这两个地方哪里有错呀?我怎么觉得没问题/yiw
by Kketchup @ 2023-11-02 21:12:33
@[Kketchup](/user/551760) 文本比对器。。。
by ademik @ 2023-11-02 21:27:35
@[ademik](/user/750173) 呃呃,我觉得很对啊/kel
by Kketchup @ 2023-11-02 21:29:42
push_down 中你是将 lazy_tag 下降到子节点中,与当前节点记录的区间和并无关系。
update 更新的是当前节点的信息,他代表的区间是 ```[t[p].l, t[p].r]```, 而你需要修改的区间是 ```[x, y]```, 这两者是包含关系。
by ademik @ 2023-11-02 21:34:15
你可以类比于区间加,区间求和的问题
by ademik @ 2023-11-02 21:35:54
@[ademik](/user/750173) 我再看看, 谢谢您/bx
by Kketchup @ 2023-11-02 21:40:41
可爱捏
by _Extroversion @ 2023-11-03 07:05:25