社区讨论

ABCE 求调

学术版参与者 5已保存回复 14

讨论操作

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

当前回复
13 条
当前快照
1 份
快照标识符
@mk8dkz8n
此快照首次捕获于
2026/01/10 22:03
上个月
此快照最后确认于
2026/01/14 13:20
上个月
查看原帖
rt。WA 了 13 个点,MLE 了 10 个点。
求调,或者指出思路错误。
玄关!
CPP
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
#define int long long
const int N=1e5+10,P=998244353;
int a[N];
struct Node{
	int a[55],sum;
	bool operator < (const Node l) const
	{
		return sum<l.sum;
	}
};
priority_queue<Node>q;
bool cmp(int x,int y){
	return x>y;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	int n,m,k;
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+n+1,cmp);
	Node st;
	st.a[1]=m,st.sum=a[1]*m;
	q.push(st);
	while(q.size()){
		Node u=q.top();
		q.pop();
		cout<<u.sum<<endl;
		k--;
		if(k==0) break;
		if(u.a[1]==0) continue;
		for(int i=2;i<=n;i++){
			Node v=u;
			v.a[i]++,v.a[1]--;
			v.sum+=a[i]-a[1];
			q.push(v);
		}
	}
	return 0;
}

回复

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

正在加载回复...