势能线段树

· · 个人记录

现在见到的题都是修改x次后,不变。

1.

取phi,奇数-1变成偶数,偶数最多是一半,所以是log,这个时间复杂度分析有点意思,就是一个点最多被修改20次,剩下的就是log。

2.上帝造题的七分钟 2

根号,1e12是6次,一样就行。

区间最大值小于模数的时候不用修改,大于mod,递归修改,

3.SUM and REPLACE

相当于取约数,根号。但是吧这个不是1,因为2的约数个数也是2,

4.给定n个数,两种操作:

区间乘法。
区间询问欧拉函数和(对大质数取模)。

对val分解质因数,考虑欧拉函数,这个东西如果不存在质数p,那么乘上(p - 1),如果存在则乘上p,因为至于很小,对每一个节点开一个bitset就行。

5.「雅礼集训 2017 Day1」市场

区间除法,区间加法,区间加,区间取min

除法是向下取整,而系统默认的除法/是向0取整(所以在正数的时候就是向下取整),右移是向下取整。

感觉一眼秒了,第二眼就fake了,因为还有加法,但是有一个性质

l - (l / p) == r - (r / p),那么l,r之间的数的变化量也相同。

我觉得这个题经典,尤其是势能分析,现在才学这个有点分不清主次了,操作很简单,如果最大值最小值变化量相同直接区间减,否则递归下去。讲感情,一个区间log_D次就可以覆盖了,区间加的话恢复势能最多有log个节点恢复势能,所以是(n+mlog)log