const int maxn = 1e5+10;
const int maxn2=log2(maxn)+1;//maxn2的值最好直接计算得出
int ST[maxn][maxn2];
void Init(int n)
{
for(int j=1;j<=maxn2;j++){
for(int i=1;i+(1<<j)-1<=n;i++){
ST[i][j]=max(ST[i][j-1],ST[i+(1<<(j-1))][j-1]);
}
}
}
int Query(int l,int r)
{
int k=log2(r-l+1);
return max(ST[l][k],ST[r-(1<<k)+1][k]);
}
ST表【模板】
最新推荐文章于 2024-04-16 14:21:38 发布