重拾莫队的一点儿思考
发现在过去一年里好多东西都忘光了,于是全部重来。
对于最简单的一个莫队情景:序列长度为 ,有 次询问,插入、删除复杂度均为 。
我们把询问按照左端点排序,然后分块,每一块内再按照右端点来排序……等一等?
考虑一下两种不同的分块方式。
第一种,把原序列按 分块,再将询问按照左端点所在块进行分块。
此时每一块内右端点移动次数为 级别,右端点总移动次数为 级别;
左端点的总移动次数是 级别。
总复杂度 ,当 取 时平衡复杂度为 。
第二种,把询问按 均匀分块。
此时每一块内右端点移动次数仍为 级别,右端点总移动次数为 级别;
左端点的总移动次数是 级别。
总复杂度 ,当 取 时平衡复杂度为 。
也就是说这两种分块方式的最优复杂度都是 。有趣的是对于第二种,最优块长与 无关。
不过这些分析也没啥用处,实际做题的时候还是直接硬调吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?