最后五个点怎么搞啊。。
查看原帖
最后五个点怎么搞啊。。
325404
Boar楼主2021/5/30 16:47
#include<bits/stdc++.h>
using namespace std;
int main(){
	int N,M;
	cin>>N>>M;
	int L=log2(N),a[N][L+1];
	for(int i=0;i<N;i++) a[i][0]=read();
	for(int i=0;i<L;i++)
		for(int j=0;j<N-(1<<i);j++) 
			a[j][i+1]=max(a[j][i],a[j+(1<<i)][i]);
	while(M--){
		int ans=0,r,l;
		cin>>l>>r;
		l--;
		while(r!=l){
			int len=log2(r-l);
			r-=1<<len;
			ans=max(ans,a[r][len]);
		}
		cout<<ans<<endl;
	}
	return 0;
}

试过快读但还是不行。。 加O2反而变慢。。

2021/5/30 16:47
加载中...