0%

线段树维护修改

线段树维护修改

luoguP6327区间sin和

https://www.luogu.com.cn/problem/P6327

题意:每次修改一个点,求区间sin值的和
区间sin和的信息不可加,但可以考虑和差化积公式,

同时记录cos和sin值就可以转化为线段树求和.
由于节点的tag不能直接和子节点的和相加,需要注意每次询问时先下放标签.还有浮点运算的常数极大,下放时先判一下0,不然很容易tle.

luoguP1471方差

https://www.luogu.com.cn/problem/P1471

题意:每次修改一个点,求区间平均数和方差
首先是平均数的合并$a_3=(a_1n_1+a_2n_2)/(n_1+n_2)$
再考虑方差的更改,每次修改时可以$O(1)$的更新

最后是方差的合并

最后特别要注意在合并方差时跨中点情况的判断,左右两段的长度应该取min(当前区间长度,询问区间长度)

luoguP5142区间方差

https://www.luogu.com.cn/problem/P5142
基本与上题相同.longlong本身常数大,全局还带了一个$O(logn)$的求逆,无脑取模会t飞.本题需要先处理出inv数组,还要取模时判断优化,以免被卡常.