莫队
传说中能解决一切区间问题的算法,前国家队队长莫涛版权所有
不是队列之类的数据结构
其实就是个优雅的大暴力
暴力技巧
我们已经知道区间
的答案,想要知道区间
的答案
如果我们能用
的时间暴力转移算出答案,就可以用莫队了
大部分区间问题都可以用线段树来做,有的不行
比如询问区间内同种颜色的数量,线段树很难做
但是可以用莫队做(仅限离线)
分块大法好
说莫队是暴力因为它用排序+分块降低时间复杂度
把原序列分成 个块,每个块大小为
离线读入所有区间操作的左端点 和右端点
把 所在块的编号为第一关键字、 本身为第二关键字升序排序操作
然后每次从上一个区间暴力计算即可
好像很好理解?因为本来莫队就不太难打
理论复杂度为
,真正复杂度为
反正
的题基本都能切