[学习笔记]莫队

主要思想

分成 \(\sqrt{N}\) 个块,将询问的l按所属块分组,再对每一组按r升序排序。暴力算答案。

需要注意的是,端点平移一个单位时,需要在 \(O(1)\) 内完成对答案的改变。( \(O(logN)\)有的数据范围也能接受 )。

时间复杂度

  • 左操作:每个块 \(O(Q_i\sqrt{N})\), \(\sqrt{N}\) 个块 \(O(\sum Q_i\sqrt{N})=O(Q\sqrt{N})\)

  • 右操作:每个块 \(O(N)\)\(\sqrt{N}\) 个块 \(O(N\sqrt{N})\)

总复杂度:\(O(N\sqrt{N})\)

例题

[cf86D]Powerful array

posted @ 2022-01-06 21:45  Aireen_Ye  阅读(50)  评论(0编辑  收藏  举报
底部 顶部 留言板 归档 标签
Der Erfolg kommt nicht zu dir, du musst auf den Erfolg zugehen.