知识点
一 . 基本概念
ST表:又名稀疏表,用来处理区间最值查询的离线算法,用到了倍增的思想
某个区间查询问题是否适用ST表,关键在于其进行的操作是否允许区间重叠。
例如max(a,b,c) = max{max(a,b),max(b,c)}就可以用ST表维护,而区间和问题则不能维护。
在时间复杂度上:预处理时间O(nlogn),单词查询O(1),时间复杂度:O(nlogn+m) 。
二 . 实现方式
设二维数组f[i][j]代表从i号位置开始往后推个单位长度的区间里的最大值,即区间的最大值
① 预处理
这里要注意更新顺序,因为其中 j (第二维)才是阶段,而第一维 x 是状态,所以对于 j 的循环要放在最外层。
② 查询