ST表

ST表类似树状数组,线段树这两种算法,是一种用于解决区间最值查询问题的离线算法。与线段树相比,预处理复杂度同为O(nlogn),但查询复杂度ST表为O(1),比线段树查询O(lgN)小,但就不涉及修改的区间查询而言,ST表无疑是更好的选择。

ST表主体,即st[i][j],表示数据数组a[ ]从下标i开始的长度为2^j的最值,即st[i][j]=max/min(a[i],a[i+1]...a[i+2^j-1])。可得st[i][j]=max/min(st[ i ][ j-1 ],s[i+(1<<(j-1)) ][ j-1]);

用类似线段树的方法,将大区间的最值分布到子区间内,即可做到O(1)的查询;

原文地址:https://www.cnblogs.com/switch-waht/p/11393981.html