[蓝桥杯]试题 基础练习 Huffuman树

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<vector>
#include<queue>

using namespace std;

int main()
{
	int n;
	cin>>n;
	if(n < 1)
	{
		cout<<0;
		return 0;
	}
	priority_queue< int, vector<int>, greater<int> >pq;		//小根堆
	int num = 0;
	for(int i = 0; i < n; i++)
	{
		cin>>num;
		pq.push(num);
	}
	int res = 0;
	while(pq.size() != 1)
	{
		int a = pq.top(); pq.pop();
		int b = pq.top(); pq.pop();
		int s = a + b;
		res += s; 
		pq.push(s);
	}
	cout<<res;
	return 0;
} 
发布了182 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_40691051/article/details/104554417
今日推荐