浅谈暴力数据结构——分块
分块是一种思想,对于 n n n 个元素,分成 n \sqrt n n
个长度为 n \sqrt n n
的块,若非完全平方数,会有剩余的角块,分块实际上是一个只有三层的 n \sqrt n n
叉树,通过对完整块的整体操作和对不完整块的暴力操作而使复杂度尽可能的低。
通过适当的划分,预处理一部分信息保存下来,用空间换取时间,达到时空平衡。
1.块的划分

一般地,对于第 i i i 个元素,属于第 ⌊ i − 1 n ⌋ + 1 \lfloor\frac{i-1}{\sqrt n}\rfloor+1 ⌊