回滚莫队
用途
有时区间问题只方便插入或只方便删除,若允许离线,则我们可以考虑回滚莫队。
方法
将询问按左端点块递增为第一关键字,右端点递增为第二关键字的方式排序。
每次左端点所在块更新时,我们将区间初始化为[块的右端点+1,块的右端点]。
- 左右端点在同一块内
直接扫一遍区间求出答案。 - 左右端点不在同一块内
先递增右端点,再递增左端点,回答询问后左端点回滚至块的右端点+1处。
时间
(O(n sqrt{n}))
有时区间问题只方便插入或只方便删除,若允许离线,则我们可以考虑回滚莫队。
将询问按左端点块递增为第一关键字,右端点递增为第二关键字的方式排序。
每次左端点所在块更新时,我们将区间初始化为[块的右端点+1,块的右端点]。
(O(n sqrt{n}))