st表

Posted lsq647vsejgfb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了st表相关的知识,希望对你有一定的参考价值。

st表。


(O(1))时间查询

/*
倍增建
*/
void build(){
    for(int i=1;i<=n;i++)
        st[i][0]=__[i];
    for(int j=1;j<=logn;j++)
        for(int i=1;i+(1<<j)<=n;i++)
            st[i][j]=min(st[i][j-1],st[i+(1<<j-1)[j-1]);
}
/*
查询就是找一个2的几次方k小于l到r的长度,然后min一下两段
*/
int query(int l,int r){
    int k=0;
    while(1<<k+1<=r-l+1) k++;
    return min(st[i][k],st[r-(1<<k)+1][k]);
}



以上是关于st表的主要内容,如果未能解决你的问题,请参考以下文章

将数据从底部工作表对话框片段传递到片段

LCA 算法ST表

模板st表

RMQ ST表

算法详解——st表

从底部工作表对话框片段中获取价值