3. 更新根结点的 $\left\langle P_i\right\rangle$ 和 $\left\langle S_i\right\rangle$ ,时间复杂度 $O(\sqrt{n})$ ;
4. 重建 $index$ 树,时间复杂度 $O(\sqrt{n}\log\log n)$ 。
- 现在我们可以高效完成区间修改了。那么如何利用懒标记回答询问?操作如下:
-5. 如果我们的询问被包含在一个有懒标记的块内,可以利用懒标记计算答案;
+现在我们可以高效完成区间修改了。那么如何利用懒标记回答询问?操作如下:
-6. 如果我们的询问包含多个块,那么我们只需要关心最左边和最右边不完整块的答案。中间的块的答案可以在 $index$ 树中查询(因为 $index$ 树在每次修改完后会重建),复杂度是 $O(1)$ 。
+1. 如果我们的询问被包含在一个有懒标记的块内,可以利用懒标记计算答案;
+
+2. 如果我们的询问包含多个块,那么我们只需要关心最左边和最右边不完整块的答案。中间的块的答案可以在 $index$ 树中查询(因为 $index$ 树在每次修改完后会重建),复杂度是 $O(1)$ 。
因此询问的复杂度仍为 $O(1)$ 。