编号 | 名称 | 实现简介 | 时间复杂度 |
---|---|---|---|
1 | 普通莫队 | ① | O ( n n ) O(n \sqrt n) O(nn) |
2 | 带修莫队 | ② | O ( n 5 3 ) O(n^{\frac 5 3}) O(n35) |
3 | 在线莫队 | ③ | O ( n n ) O(n \sqrt n) O(nn) |
4 | 回滚莫队 | ④ | O ( n n ) O(n \sqrt n) O(nn) |
5 | 树上莫队 | ⑤ | O ( n n ) O(n \sqrt n) O(nn) |
6 | 高维莫队 | ⑥ | O ( n 2 − 1 w O(n^{2-\frac 1 w} O(n2−w1) |
7 | 高维带修莫队 | ⑦ | O ( n 2 − 1 w + 1 O(n^{2-\frac 1 {w+1}} O(n2−w+11) |
①: 左端点不同块按左端点排序,否则按右端点排序
②: 取块长为
n
2
3
n^{\frac 2 3}
n32,与普通莫队相比不同点为,如果左右端点均同块则按之前的操作次数排序
③: 预处理每一个段边界,每次查询的时候只需要查询小段,小段与大段组合的贡献,可以采用其他数据结构维护
④: 对于所有左端点所在块相同的询问右端点升序,所以可以维护一个序列,每次向右添加,对于每次询问分别将左端点往左拉再拉回来,避免了撤销操作
⑤: 按照欧拉序,分类讨论两种情况转化为序列上的莫队
⑥:
w
w
w指维的数量
⑦: 略