莫队

莫队是一个离线解决可以维护区间左右端点移动后答案的算法。在结合一些技巧后,莫队可以处理树上问题,支持带修改,也能处理插入简单删除难的特殊情况。其优秀的根号复杂度和并不算大的常数常常能在很多数据结构题中发挥作用。考场上,这个好记好用好写好调还很短的算法常常帮助你轻松拿到部分分甚至踩标算。

本题单不提供莫队教程,仅提供配套题目。

保证题单中的题我都AC过,如果您有好题,可以联系我,写完了会立马加,如果部分题目备注有误和有更多的建议也可以联系我。

如果您在看到题目后能很快想出做法,不一定要全部 AC。

Warning

并不是所有题目都能用莫队通过。部分题目莫队非正解,需要大力卡常或者根本过不去。

当然,对于部分题目,莫队确实是正解,但是仍然需要卡常。本题单仅提供大致思路,对于部分细节,请移步题解区。

Status

$2021.2.6$:添加了 Edu 的一道带修莫队。 $2021.2.9$:添加了 div.1 的一道树上莫队。 $2021.2.13$:发现 CF 上的一个 blog,里面有一些莫队题。 $2021.2.14$:添加了一道双倍经验。 $2021.2.15$:添加了一道比较水的题。 $2021.3.26$:??? $2021.4.15$:添加了 Edu 的一道需要卡常的莫队。 $2021.4.28$:删除了一道多倍经验 SP32900,添加了 CF 上的一道 $\sqrt n\log n$ 复杂度的莫队。 $2021.6.17$:添加了一道 THUPC 的二次离线莫队,将双倍经验全部移到了[这里](https://www.luogu.com.cn/training/79158)。 # Contents * Section 1 莫队是什么 * Section 2 莫队上树 * Section 3 带修莫队 * Section 4 回滚莫队 * Section 5 bitset上莫队 * Section 6 二次离线莫队 * Section 7 这也是莫队 * Section 8 杂题 # Section 1 * 莫队是什么 * $O(1)$ 移动端点的优良性质 * 分块排序询问的重要之处 ## [P3901](https://www.luogu.com.cn/problem/P3901) * 不是模板题,因为有一万种做法。 ## [SP1684](https://www.luogu.com.cn/problem/SP1684) * 模板题。 * 和 Uva11235 是双倍经验。 ## [P1972](https://www.luogu.com.cn/problem/P1972) * 模板题。 * 和 SP3267 是双倍经验。 * 需要吸氧。 * 实在过不去还是写一发正解吧…… ## [P1494](https://www.luogu.com.cn/problem/P1494) * 模板题。 * 注意到答案是合法方案除以总方案,维护合法方案数即可。 ## [P2709](https://www.luogu.com.cn/problem/P2709) * 模板题。 * $(x+1)^2-x^2=2x+1

CF877F

CF1000F

P4396

CF220B

CF633H

Section 2

SP10707

CF375D

CF1479D

其实普通莫队强行上树很无聊……所以请先收好这个知识点,往后看:

挖坑:P4074(section 3),P4175(section 3),P6072(section 4),P4689(section 7)

Section 3

P1903

SP30906

SP32952

CF940F

P4175

P4074

CF1476G

Section 4

P3709

AT1219

P5906

P6072

CF522D

(Ynoi2019)P6578

P5386

Section 5

P3674

(Ynoi2017)P5355

(Ynoi2011)P5313

Section 6

P4887

(Ynoi2019模拟赛)P5047

(Ynoi2018)P5398

P5501

(Ynoi2007)P7448

Section 7

P3604

P5268

P4462

(Ynoi2016)P4689

Section 8

由于掌握套路之后莫队本身其实非常简单,因此想要出非板子题,只能将题目与别的知识结合,让你即使知道这是莫队也无从下手。

此部分需要一些其他知识点的小技巧。

P3245

(Ynoi2015)P5071

CF1511G

(Ynoi2015)P5072

Section 9

To be continued......?


  1. P3901 - 数列找不同
  2. SP1684 - FREQUENT - Frequent values
  3. P1972 - [SDOI2009] HH 的项链
  4. P1494 - [国家集训队] 小 Z 的袜子
  5. P2709 - 【模板】莫队 / 小 B 的询问
  6. CF877F - Ann and Books
  7. CF1000F - One Occurrence
  8. P4396 - [AHOI2013] 作业
  9. CF220B - Little Elephant and Array
  10. CF633H - Fibonacci-ish II
  11. SP10707 - COT2 - Count on a tree II
  12. CF375D - Tree and Queries
  13. CF1479D - Odd Mineral Resource
  14. P1903 - 【模板】带修莫队 / [国家集训队] 数颜色 / 维护队列
  15. SP30906 - ADAUNIQ - Ada and Unique Vegetable
  16. SP32952 - ADAFTBLL - Ada and Football
  17. CF940F - Machine Learning
  18. P4175 - [CTSC2008] 网络管理
  19. P4074 - [WC2013] 糖果公园
  20. CF1476G - Minimum Difference
  21. P3709 - 大爷的字符串题
  22. AT_joisc2014_c - 歴史の研究
  23. P5906 - 【模板】回滚莫队&不删除莫队
  24. P6072 - 『MdOI R1』Path
  25. SP20644 - ZQUERY - Zero Query
  26. CF522D - Closest Equals
  27. P6578 - [Ynoi2019] 魔法少女网站
  28. P5386 - [Cnoi2019] 数字游戏
  29. P3674 - 小清新人渣的本愿
  30. P5355 - [Ynoi Easy Round 2017] 由乃的玉米田
  31. P5313 - [Ynoi2011] WBLT
  32. P4887 - 【模板】莫队二次离线 / 第十四分块(前体)
  33. P5047 - [Ynoi2019 模拟赛] Yuno loves sqrt technology II
  34. P5398 - [Ynoi2018] GOSICK
  35. P5501 - [LnOI2019] 来者不拒,去者不追
  36. P7448 - [Ynoi2007] rdiq
  37. P3604 - 美好的每一天
  38. P5268 - [SNOI2017] 一个简单的询问
  39. P4462 - [CQOI2018] 异或序列
  40. CF617E - XOR and Favorite Number
  41. P4689 - [Ynoi Easy Round 2016] 这是我自己的发明
  42. P3245 - [HNOI2016] 大数
  43. P5071 - [Ynoi Easy Round 2015] 此时此刻的光辉
  44. CF1511G - Chips on a Board
  45. P5072 - [Ynoi Easy Round 2015] 盼君勿忘
  46. P6580 - [Ynoi2019] 美好的每一天~ 不连续的存在