数列分块概要
分块简介
分块是对数列进行操作的一种(在线毒瘤暴力卡常)数据结构,把数列分块维护。主要处理区间问题
数列操作(L,R):
找最值,求和,求大于、小于K元素个数等
分块操作
一个对于[l,r]的操作,对于区间内完整的块,我们直接维护整个块的信息;对于两侧不完整的块,直接暴力。
1.判断要操作或是查询的区间是否在一个块内
2.若在一个块内,暴力操作或查询
3.若不在一个块内,将除了最左边和最右边这两个块外其余的块进行整体的操作,即直接对块打上修改标记之类的
4.单独暴力处理最左边的块和最右边的块
————引用自YuWenjue的博客
分块大小
数列长度为n时,一般为sqrt(n)
时间复杂度分析
初始化O(n),单次操作O(sqrt(n))
例题
见黄学长的博客
将持续更新做题记录