就#11没过
查看原帖
就#11没过
1180231
H_dream楼主2024/4/12 18:37
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=1e5+10;
const ll M=(ll)(log2(N));
ll n,m;
ll a[N][M];
ll luogu(ll x,ll y) {
	ll k=(ll)(log2(y-x+1));
	return max(a[x][k],a[y-(1<<k)+1][k]);
}
int main(){
	scanf("%lld%lld",&n,&m);
	for(ll i=1; i<=n; i++) scanf("%lld",&a[i][0]);
	for(ll j=1; (1<<j)<=n; j++)
		for(ll i=1; i+(1<<j)-1<=n; i++)
			a[i][j]=max(a[i][j-1],a[i+(1<<(j-1))][j-1]);
	while(m--) {
		ll x,y;
		scanf("%lld%lld",&x,&y);
		ll t=luogu(x,y);
		printf("%lld\n",t);
	}
	return 0;
}
2024/4/12 18:37
加载中...