思路:
ST表模板
c o d e code code
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int n, m;
int f[1001000][31];
int main()
{
scanf("%d%d", &n, &m);
for(int i=1; i<=n; i++)
{
int x;
scanf("%d", &x);
f[i][0]=x;
}
for(int j=1; j<=log2(n); j++)
for(int i=1; i+(1<<j)-1<=n; i++)
f[i][j]=max(f[i][j-1], f[i+(1<<(j-1))][j-1]);
while(m--)
{
int l, r;
scanf("%d%d", &l, &r);
int k=log2(r-l+1);
printf("%d\n", max(f[l][k], f[r-(1<<k)+1][k]));
}
}