const int N=1e5+2;
int st[N][20],n,a[N];
void init(){
int i,j;
for(i=1;i<=n;i++) st[i][0]=a[i];
for(j=1;j<20;j++)
for(i=1;i+(1<<j)-1<=n;i++){
st[i][j]=max(st[i][j-1],st[i+(1<<(j-1))][j-1]);
}
}
int q(int l,int r){
int t=log2(r-l+1);
return max(st[l][t],st[r-(1<<t)+1][t]);
}
st表 查询区间最值
最新推荐文章于 2024-07-29 22:53:13 发布