目录
一.RMQ问题的概念
RMQ(Range Minimum/Maximum Query)问题,简单说就是求区间最值问题,是求区间最大值或最小值,即范围最值问题,若是简单的单次询问或者是区间长度很短的询问,可以用暴力的方法来实现,但面对大数据的时候此方法必然超时,这里介绍O(nlogn)预处理,O(1)查询的ST算法。
二,st算法
ST算法(Sparse Table)是用于解决RMQ问题(区间最值问题)的一种强有力的工具。
它可以O(nlogn)预处理,O(1)查询最值,利用的是倍增的思想。
但是使用ST算法后就不能进行修改操作了。
st算法的主要思想就是将所求的区间化为两个小区间,这两个区间的长度正好是2的k次幂,总长度正好覆盖[l,r],得到的结果就是所求答案。
首先要清楚为什么是分成两段,而不是3段,4段,首先分成两段的话更好写的,比那些处理3段以及n段更简单。