社区讨论

到底是哪错了,本蒟蒻找俩天啦!

P2880[USACO07JAN] Balanced Lineup G参与者 4已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@lo299zjl
此快照首次捕获于
2023/10/23 10:05
2 年前
此快照最后确认于
2023/11/03 10:17
2 年前
查看原帖
C
#include<bits/stdc++.h>
using namespace std;
int n,t,stmin[22][500005],stmax[22][500005];
int main(){
	cin>>n>>t;
	for(int i=1;i<=n;i++){
		scanf("%d",&stmin[0][i]);
		stmax[0][i]=stmin[0][i];
	}
	cout<<endl;
	for(int i=1;i<=21;i++){
		for(int j=1;j+(1<<i)-1<=n;j++){
			stmin[i][j]=min(stmin[i-1][j],stmin[i-1][j+(1<<(i-1))]);
			stmax[i][j]=max(stmax[i-1][j],stmax[i-1][j+(1<<(i-1))]);
			cout<<stmax[i][j]<<" "<<stmin[i][j]<<endl;
		}
		cout<<endl;
	}
	cout<<endl;
	cout<<endl;
	for(int i=1;i<=t;i++){
		int a=0,b=0;
		scanf("%d%d",&a,&b);
		int lo=log2(a-b+1);
		int mmin=min(stmin[lo][a],stmin[lo][b-(1<<lo)+1]);
		int mmax=max(stmax[lo][a],stmax[lo][b-(1<<lo)+1]);
		printf("%d\n",mmax-mmin);
	}
	return 0;
}

回复

8 条回复,欢迎继续交流。

正在加载回复...