ST表
可以用来静态求解RMQ问题
预处理 \(O(n\ log \ n)\)
查询 \(O(1)\)
void pre_st() { for(int j=1;j<=20;j++) for(int i=1;i+(i<<j)-1<=n;i++) st[i][j]=max(st[i][j-1],st[i+(1<<(j-1))][j-1]); } void pre_log() { log[0]=-1; for(int i=1;i<=MXA;i++) log[i]=log[i>>1]+1; } int query(int l,int r) { int t=log[r-l+1]; return max(st[l][t],st[r-(1<<t)+1][t]); //两个区间有交集 但是并不影响查询的结果 }