浅谈分块

分块是一种处理序列问题的科技,这种算法把序列分成若干段,对于区间的处理与询问,遵从“大段维护,小段朴素”的思想。如果我要处理或者询问的区间包含了某一段,那么可以在极小的时间复杂度内把这一段的信息进行维护,对于不包含的就直接暴力更新。等到要询问的时候,把被询问区间包含的段的信息直接整个贡献进总答案里,对于不包含的段就暴力统计。一般段的长度是\(\sqrt{n}\)的,这样子暴力的复杂度不会超过\(\sqrt{n}\),完整的段的个数也不会超过\(\sqrt{n}\),复杂度就是\(\sqrt{n}\)的了。

分块看似十分暴力,但是在某些时候,却能用较小的代码完成较复杂的数据结构的功能,起到四两拨千斤的作用。

posted @ 2019-02-13 14:50  AKMer  阅读(213)  评论(0编辑  收藏  举报