RMQ问题
考虑一个 $O(n)$ 预处理,$O(1)$ 查询的 RMQ 算法
考虑将序列按照 $logn$ 进行分块,对于不在一个同块内部的询问,我们用ST表维护整块的信息,再额外维护块内的前后缀最大值即可
对于在一个块内的查询,我们可以开一个单调栈维护一个前缀的单调下降序列,每一位使用一个整数状压单调栈内拥有的元素,查询 $l,r$ 时直接找 $r$ 对应的单调栈中第一个 $\ge l$ 的位置即可
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 mygr main()!