全WA求助线段树qwq

P1471 方差

@[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


|