[블루 브릿지 컵] 질문 기본 교육 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 · 보기 10000 +

추천

출처blog.csdn.net/qq_40691051/article/details/104554417