【数据结构:线性表】倍增表(ST表)

【数据结构:线性表】倍增表(ST表)知识点 一 基本概念 ST 表 又名稀疏表 用来处理区间最值查询 的离线 算法 用到了倍增 的思想 某个区间查询问题是否适用 ST 表 关键在于其进行的操作是否允许区间重叠 例如 max a b c max max a b max b c 就可以用 ST 表维护 而区间和 问题则不能维护 在时间复杂度上 预处理时间 O nlogn 单词查询 O 1 时间复杂度

大家好,我是讯享网,很高兴认识大家。

知识点

一 . 基本概念

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号位置开始往后推2^j
讯享网个单位长度的区间里的最大值,即[i,i+2^j-1]区间的最大值

① 预处理

这里要注意更新顺序,因为其中 j (第二维)才是阶段,而第一维 x 是状态,所以对于 j 的循环要放在最外层。

② 查询

小讯
上一篇 2025-02-23 09:28
下一篇 2025-03-02 09:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/121496.html