[学习笔记] 莫队
一、普通莫队
莫队是一种基于分块的算法,由莫队提出(orz)。
莫队可以解决一类查询序列区间信息的题。
可以使用该算法的 前提 是维护的信息必须可以在
-
将序列分块,并将所有询问离线。然后将左端点所在的块的编号作为第一关键字,右端点作为第二关键字,将询问排序。
-
记
为第 个询问, 为询问个数,那么我们暴力的从 改到 ,从 改到 ,一直改到 。 -
分析时间复杂度。设块长为
,假定扩展区间复杂度为 ;左端点在一个块内的询问,移动最多 次,有 块,所以这部分的复杂度为 ,因为这样每次改可能跨越块,所以这部分的复杂度为 ,总复杂度 。我们要让这个式子尽可能小,所以要让这两项相等,即 ,解得 ,时间复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)