Luogu7447 [Ynoi2007] rgxsxrs
题意:给定一个长为
将区间
中所有 的元素减去 。 表示询问区间
的和,最小值,最大值。
我们认为
考虑倍增分块,倍数为
对于每个块内的数,分别用线段树维护。需要维护区间最小值最大值以及和。
对第
①
:操作没有影响,直接返回。 ②
:区间内减 后仍然都在当前块内,打区间减标记即可。 ③ 对于叶节点,
:将其删除,加入下一层。
三类位置形成若干连续段,若段数为
在 ③ 中,每个值只会下降
其余的复杂度可以看做与 ② 的个数直接相关。
块内的总和至多是
于是花费于 ② 的总复杂度是
选取一个合适的
此时空间复杂度是
底层进行