模板st表
Posted _yrh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板st表相关的知识,希望对你有一定的参考价值。
今天学习了一下st表 其实好几天就一直看
用禚神仙的话来说:
ST表是一种用于处理静态RMQ问题(无修改区间最值问题)的最快数据结构,书写方便使用简单效率便捷。
其中其预处理复杂度为O(nlogn),查询复杂度为O(1)。总时间复杂度为O(nlogn)。
常数远小于树状数组、线段树等毒瘤数据结构。
st表不支持在线修改 不支持!!!!!
一种利用dp求解区间最值的倍增算法。
定义:f[i][j]表示i到i+2^j-1这段区间的最大值。这里必须是i到i+2的j次方-1 别问为什么 规定!!!
预处理:f[i][0]=a[i]。即i到i区间的最大值就是a[i]。
状态转移:将f[i][j]平均分成两段,一段为f[i][j-1],另一段为f[i+2^(j-1)][j-1]。
两段的长度均为2^j-1。f[i][j]的最大值即这两段的最大值中的最大值。
得到f[i][j]=max(f[i][j-1],f[i+2^(j-1)][j-1])。
以上是关于模板st表的主要内容,如果未能解决你的问题,请参考以下文章