ST表

int f[maxn][22];
int n,m;
void ST_prework(){
    for(int i=1;i<=n;i++) cin>>f[i][0];
    int t=log2(n)+1;
    for(int j=1;j<t;j++){
        for(int i=1;i<=n-(1<<j)+1;i++){
            f[i][j]=min(f[i][j-1],f[i+(1<<(j-1))][j-1]);
        }
    }
}
int ST_query(int l,int r){
    int k=log2(r-l+1);
    return min(f[l][k],f[r-(1<<k)+1][k]);
}

 

posted @ 2021-09-05 14:55  摸鱼选手LLF  阅读(12)  评论(0编辑  收藏  举报