修理牧场

Train

题目链接

哈夫曼树的考核,本质是构建个最优二叉树,计算出WPL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//priority_queue<int,vector<int>,greater<int> > q;
//创建了一个优先队列(先出的是最小的)q.top();
#include<iostream>
#include<queue>
using namespace std;

int main()
{
priority_queue<int, vector<int>, greater<int>> q;
int n;
cin >> n;
for (int i = 0; i < n; ++i)
{
int num;
cin >> num;
q.push(num);
}
int sum = 0;
while (q.size() != 1)
{
int a = q.top();
q.pop();
int b = q.top();
q.pop();
sum += (a + b);
q.push(a + b);
}
cout << sum;
return 0;
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!