#|luogu P3865 【模板】ST表

题目传送门:https://www.luogu.org/problemnew/show/P3865




题意:
有n个正整数,m次询问,每一次询问有x,y,求x到y区间的最大值。
【#|luogu P3865 【模板】ST表】



思路:
ST表(RMQ)模板。倍增思想:每次一求出区间为1,2,4,8,16……的最大值,最后合并。




代码:

#include #include #include using namespace std; int f[200000][20]; //f[i][j]表示从i到i+(j<<1)的区间最大值 int n,m; int main() { int x,y; scanf("%d %d",&n,&m); for(int i=1; i<=n; i++) { scanf("%d",&x); f[i][0]=x; } int p=log2(n); for(int j=1; j<=p; j++) for(int i=1; i<=n-(1<

    推荐阅读