1 势能
1.1
有一类之前就见过的操作。区间取模区间开方。
开方是说在 \(\log \log B\) 次过后就不变了,所以这之前暴力即可。
取模则是说如果一个数能取模那么至少会减少一半,所以一个数最多暴力操作 \(\log B\) 次就没了。对于一个区间你维护最大值看是否需要递归进行操作即可。
上面的复杂度都是 \(O(暴力\times n\log n)\) 的。
1.2
区间开方,区间加,查询区间和。
为什么要按照 \(\max - \min\) 的情况来?
因为我们直接用标记处理 \(\max - \min \le 1\) 的情况。剩下暴力。
而每个区间暴力最多次数还是 $\log\log B $ 的,保证了暴力复杂度。
区间加,区间除,查询区间和,查询区间 min。
还是 max - min,考虑暴力复杂度,是 \(\log\) 次。
1.3
尝试对上面的情况进行总结。
你设置一个分界情况,一边暴力,一边打标记(且可以打标记);
只需要保证暴力的复杂度正确。
可以完成 T1。