社区讨论

E 调1h调不出 求条玄关

学术版参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mk8cu8fk
此快照首次捕获于
2026/01/10 21:42
上个月
此快照最后确认于
2026/01/10 22:14
上个月
查看原帖
罚坐70min/oh
CPP
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
long long cmp(long long a,long long b){
	return a>b;
}
map<pair<long long,pair<long long,long long> > ,long long>s;
priority_queue<pair<long long,pair<long long,long long> > ,vector<pair<long long,pair<long long,long long> > >,less<pair<long long,pair<long long,long long> > > >q; 
long long n,k,x,a[200009],ans[200009],anscnt;
void solve(){
	cin>>n>>k>>x;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+1+n,cmp);
	cout<<a[1];
	q.push({k*a[1],{1,0}});
	while(!q.empty()){
		if(anscnt>=x) break;
		anscnt++,ans[anscnt]=q.top().first;
		long long cnt=q.top().first;pair<long long,long long> noww=q.top().second;q.pop();
		if(noww.first<n){
			if(!s[{cnt+a[noww.first+1]-a[noww.first],{noww.first+1,noww.second}}]){
				s[{cnt+a[noww.first+1]-a[noww.first],{noww.first+1,noww.second}}]=1;
				q.push({cnt+a[noww.first+1]-a[noww.first],{noww.first+1,noww.second}});
			}
		}
		if(noww.second<x){
			if(!s[{cnt+a[noww.first]-a[1],{noww.first,noww.second+1}}]){
				s[{cnt+a[noww.first]-a[1],{noww.first,noww.second+1}}]=1;
				q.push({cnt+a[noww.first]-a[1],{noww.first,noww.second+1}});
			}
		}
	}
	for(int i=1;i<=x;i++)
		cout<<ans[i]<<'\n';
	s.clear();
	while(!q.empty()) q.pop();
	n=k=x=anscnt=0;
}
int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	long long T=1;//cin>>T; 
	while(T--) solve();
}
//后面忘了

回复

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

正在加载回复...