P2880 [USACO07JAN]平衡的阵容Balanced Lineup (st表入门)

题目链接

这个是st表的入门题。

附上st表的学习链接 AC龙 。这个博客讲的挺好的。

st表的建表时间复杂度是nlogn,查询时o(1),可用于处理RMQ问题,区间覆盖对问题不会造成影响的问题。

贴上代码,模板来自上面说的学习链接

Log【i】是指2^k <= i,k能取到的最大值,st【i】【j】代表从i位置向后长度为 2^j 这个区间中的最小值。

#include 
 
using namespace std;
int n;
const int maxn = 1e5+100;
int stMin[maxn][25],a[maxn],stMax[maxn][25];
void init()
{
    for(int i=1;i<=n;i++)stMax[i][0] = stMin[i][0] = a[i];
    for(int j = 1; (1<

 

 

你可能感兴趣的:(RMQ)