#include<bits/stdc++.h> using namespace std; const int N = 1e5+10; int n, m, a[N], x, y,dp[N][30]; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; for(int i = 1;i<=n;i++) cin>>a[i]; for(int i = 1;i<=n;i++){ dp[i][0] = a[i]; } for(int i = 1;i<=30;i++){ for(int j = 1;j+(1<<i)-1<=n;j++){ dp[j][i] = max(dp[j][i-1],dp[j+(1<<(i-1))][i-1]); } } for(int i = 1;i<=m;i++){ cin>>x>>y; int t = log2(y-x+1); cout<<max(dp[x][t], dp[y-(1<<t)+1][t])<<"\n"; } return 0; }

0 条评论

目前还没有评论...

信息

ID
1363
时间
1000ms
内存
256MiB
难度
6
标签
(无)
递交数
108
已通过
31
上传者