怎么输都是0,求大佬帮助
查看原帖
怎么输都是0,求大佬帮助
1124986
simple1first楼主2023/12/20 22:24
#include<bits/stdc++.h>
using namespace std;
const int x = 2e5+2;
int n,m,l,r,a[x],stmax[x][25];

void init(){
	for (int i=1;i<=n;i++) stmax[i][0]=a[i];
	for (int j=1,b=1;j<25;j++,b*=2){
		for (int i=1;i<=n-2*b+1;i++){
				stmax[i][j]=max(stmax[i][j-1],stmax[i+b][j-1]);
		}
	}
}
int max_query(int l,int r){
	int len = log2(r-l+1);
	return max(stmax[l][len],stmax[r-(1<<len)+1][len]);
}

int main(){
	cin >> n >> m;
	for(int i=1;i<=n;i++) cin >> a[i];
	for(int i=1;i<=m;i++){
		cin >> l >> r;
		cout << max_query(l,r);
	}	
	
	return 0;
}
2023/12/20 22:24
加载中...