10分求调
  • 板块P1816 忠诚
  • 楼主ZZ_WYZ
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/1 12:14
  • 上次更新2024/9/1 12:15:08
查看原帖
10分求调
623089
ZZ_WYZ楼主2024/9/1 12:14
#include<bits/stdc++.h>
using namespace std;
int n,m,l,r,a[100010],f[100010][40];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		f[i][0]=a[i];
	}
	int k=log2(n);
	for(int j=1;j<=k;j++){
		for(int i=1;i<=n-(1<<j)+1;i++){
			f[i][j]=min(f[i][j-1],f[i+(1<<(j-1))][j-1]);
		}
	}
	for(int i=1;i<=m;i++){
		cin>>l>>r;
		k=log2(r-l+1);
		if(i!=m)cout<<min(f[l][k],f[r-(1<<k)][k])<<" ";
		if(i==m)cout<<min(f[l][k],f[r-(1<<k)][k]);
	}
	return 0;
}
2024/9/1 12:14
加载中...