省流:平衡复杂度。
过于 trivial,所以不写题解了。
但是现有的题解又都没有提到这个东西,所以在这里补充说一下。
本题处理询问时,一般的写法是整除分块套树状数组,复杂度为 O(nlogn)。
在整除分块中,考虑对 1∼B(B≥n) 的部分暴力计算。
这一段上只需要支持单点修改、单点查询,直接 O(1) 维护即可,复杂度为 O(B)。
B∼n 的部分仍然使用整除分块 + 树状数组。由于只有 O(Bn) 个块,所以复杂度是 O(Bnlogn).
取 B=O(nlogn),得到最优复杂度 O(nlogn)。