【复习笔记】莫队

【复习笔记】莫队

简介

莫队可以用来批量处理区间问题,是 一种高效的暴力

实现

将区间 \([1,n]\) 分为长度为 \(B\) 的若干块,将 左端点 排序,对于同一块内的询问,再按 右端点 排序。

复杂度证明
左端点同一区间 内一次最多移动 \(B\),最多移动 \(q\) 次,时间复杂度 \(O(qB)\)
每个点最多被两个 跨块 询问覆盖,时间复杂度 \(O(n)\)
右端点,每个块 \(O(n)\)(按升序排序之后),共 \(n \over B\) 个块,总共 \(O(\frac{n^2}{B})\)
总时间复杂度 \(O(qB+\frac{n^2}{B})\),平衡一下 \(B\)\(\frac{n}{\sqrt q}\) 时最优。

小优化:奇数块右端点按 升序 排列,偶数块按 降序 排列(减少右端点跨块之间的移动)。

posted @ 2025-07-27 19:46  GuoSN0410  阅读(13)  评论(0)    收藏  举报