数据结构笔记
分块,为你我陷入疯狂!
两种操作:
- 区间加
- 区间查询有多少值大于等于
x
n \leq 10^6,q \leq 3000,x \leq 10^9
没有区间加法的话是一个很简单的二维数点题,加上修改的话可以线段树二分,时间复杂度
这个题也可以用分块来完成,
对于查询的操作,小段暴力查询,大段我们考虑块内二分,可以使用 lower_bound
,单次操作时间复杂度
为了保证块内有序,对于区间加的操作,小段暴力,大段打 tag,对于小段来说,我们每次对整个块暴力重构排序,时间复杂度为
总时间复杂度为
两种操作:
区间加
- 查询区间
[l,r] 的第k 小值。
1\leq n,m\leq 10^5 ,-2\times 10^4\leq 每次加上的数和原序列的数\leq 2\times 10^4 。
注意到我们查第
那么判断排名,实际上就是上边那个题所做的工作了,记值域大小为
总时间复杂度为
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭