大佬求调!!
查看原帖
大佬求调!!
1011466
FuZekai_楼主2024/3/31 12:05

代码如下

#include <bits/stdc++.h>
using namespace std;
int f[100005][20], n, m, l, r, lg[100005];

int main(){
	scanf("%d %d ", &n, &m);
	lg[1] = 0;
	for(int i = 2; i <= n; i ++) lg[i] = lg[i>>1]+1;
	for(int i = 1; i <= n; i ++) cin >> f[i][0];
	for(int j = 1; j <= lg[n]; ++j){
		for(int i = 1; i <= n-(1<<j)+1; ++i){
			f[i][j] = max(f[i][j-1], f[i+(1<<j-1)][j-1]);
		}
	}
	while(m--){
	    scanf("%d %d", l, r);
		int k = lg[r-l+1];
		printf("%d\n", max(f[l][k], f[r-(1<<k)+1][k]));
	}
}

感谢大佬!!

2024/3/31 12:05
加载中...