稀疏表(ST表)的简介
稀疏表(Sparse Table, ST 表)与线段树、树状数组一样,也是常用来处理序列上的区间询问问题的。但 ST 表只能处理区间最值,即RMQ(Range Minimum Query)问题,它的空间需求也比前两者要大,是O( nlogn )级别的。ST 表需要O( nlogn )的时间预处理,并且能O(1)回答单次区间最值的询问,但不支持修改操作。因此它适用于无修改且询问次数较多的 RMQ 问题。
稀疏表(ST表)的实现
ST 表在预处理阶段需要计算一个数组f[i][j]表示区间[i,i+ 2j -1]的最小值,也就是从i 开始连续 2j 个数的最小值。它可以通过倍增得到:(将