void init()
{
int i,j;
for(i=0;i<n;++i) stmin[i][0]=stmax[i][0]=a[i];
for(i=0;i<n;++i){
for(j=1;i+(1<<j)-1<n;++j){
stmin[i][j]=min(stmin[i][j-1],stmin[i+(1<<(j-1))][j-1]);
stmax[i][j]=max(stmax[i][j-1],stmax[i+(1<<(j-1))][j-1]);
}
}
}
int queryMin(int l,int r)
{
int k=log(r-l+1);
return min(stmin[l][k],stmin[r+1-(1<<k)][k]);
}
int queryMax(int l,int r)
{
int k=log(r-l+1);
return max(stmax[l][k],stmax[r+1-(1<<k)][k]);
}
【模板】st表
最新推荐文章于 2025-04-06 11:51:22 发布