线性RMQ——四毛子算法
形式化来说,给出长为
有关四毛子算法
四毛子算法,一种分块的应用,也是一种能实现
相比之下,它会比常见的其他算法时间要优,诸如什么
做法
考虑设定阈值
之后我们分两种区间考虑(询问的左右端点分别记为
-
询问的左右端点不在同一个块中
整块:利用
预处理出第 个块的最小值,时间复杂度 。散块:维护块内前缀最小值与后缀最小值。
-
询问的左右端点在同一个块中
每个块中维护一个单调栈,遍历到一个点时记录当前单调栈中节点的集合(由于块长为
,所以一个 就能存下)。时间复杂度 。查询对于
的二进制集合状态,某位后面的第一个 在哪一位即可(可以使用 `__builtin_clz()`
)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下