93pts,WA on #11求助
查看原帖
93pts,WA on #11求助
1016866
dlzlj_2010楼主2024/1/28 15:27
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5,M=log2(N);
int a[N],ST[N][M];
inline int read()
{
	int x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}
signed main(){
	int n=read(),m=read();
	for(int i=1;i<=n;i++){
		ST[i][0]=read();
	}
	for(int j=1;(1<<j)<=n;j++){
		for(int i=1;i+(1<<j)-1<=n;i++){
			ST[i][j]=max(ST[i][j-1],ST[i+(1<<(j-1))][j-1]);
		}
	}
	while(m--){
		int l=read(),r=read();
		int j=log2(r-l+1);
		cout<<max(ST[l][j],ST[r-(1<<j)+1][j])<<'\n';
	}
    return 0;
}

record

2024/1/28 15:27
加载中...