文章

35

粉丝

93

获赞

51

访问

12.1k

头像
合并果子 题解:优先队列
P1544 中南大学机试题
发布于2024年1月18日 23:16
阅读数 455

#include <bits/stdc++.h>
using namespace std;
struct node{
	int x;
	node(int a){
		x=a;
	}
};
bool operator<(const node &a,const node&b){
	return a.x>b.x;
}
int main(){
	priority_queue<node> q;
	int n,x;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>x;
		q.push(x);
	}
	int res = 0;
	while(q.size()>1){
		node num1 = q.top();
		q.pop();
		node num2 = q.top();
		q.pop();
		res+=num1.x+num2.x; 
		q.push(node{num1.x+num2.x});	
	}
	cout<<res;
	
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发