(转)ST表算法
插眼:點擊查看
用法:O(nlogn)時間打表,O(1)時間查詢區間最值
模板:
const int N=1e5+100;int a[N];int st[N][30];void ST_build() {for(int i=1;i<=n;i++)st[i][0]=a[i];for(int i=1;i<=log2(n);i++)for(int j=1;j+(1<<i)-1<=n;j++)st[j][i]=max(st[j][i-1],st[j+(1<<i-1)][i-1]); } int ST_query(int l,int r) {int k=log2(r-l+1);return max(st[l][k],st[r-(1<<k)+1][k]); }?
總結
- 上一篇: CodeForces - 182D Co
- 下一篇: (转)LCA模板(倍增法)