提交记录(AC7个 TLE6个)
以下是代码QWQ
#include<bits/stdc++.h>
using namespace std;
int n,m,a[2000005][30],logs[2000005];
void pre()
{
logs[1]=0;
logs[2]=1;
for(int i=3;i<=n;i++)
{
logs[i]=logs[i/2]+1;
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i][0];
}
pre();
for(int j=1;j<=30;j++)
{
for(int i=1;i+(1 << j )-1<=n;i++)
{
a[i][j]=max(a[i][j-1],a[i+(1 << (j-1) )][j-1]);
}
}
for(int i=1;i<=m;i++)
{
int u,v;
cin>>u>>v;
int s=logs[v-u+1];
cout<<max(a[u][s],a[v-(1 << s)+1][s])<<endl;
}
return 0;
}