为什么全wa
查看原帖
为什么全wa
427590
SHENTONG_ZY楼主2022/5/1 16:49

样例似乎都过了

#include<bits/stdc++.h>
using namespace std;
int n,m,l,r,a[1000000+10],f[1000000+10][35],lg[1000000+10];
void st(){
	for(int j=0;j<=30;j++){
		for(int i=1;i+(1<<j)-1<=n;i++){
			if(j==0) f[i][j]=a[i];
			else{
				f[i][j]=max(f[i][j-1],f[i+(1<<j-1)][j-1]); 
			}
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		if(i>=2) lg[i]=lg[i>>1]+1;
	}
	st();
	for(int i=1;i<=m;i++){
		scanf("%lld%lld",&l,&r);
		long long len=lg[abs(r-l)+1];
		long long ans=max(f[l][len],f[r-(1<<len)+1][len]);
		printf("%lld\n",ans);
	}
	
	return 0;
}
2022/5/1 16:49
加载中...