线段树维护修改
线段树维护修改
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数组,还要取模时判断优化,以免被卡常.