题解 | 哈夫曼树
哈夫曼树
https://www.nowcoder.com/practice/162753046d5f47c7aac01a5b2fcda155
#include <iostream>
#include <queue>
#include <functional>
using namespace std;
int main() {
int n=0;
priority_queue<int, vector<int>, std::greater<int>> q;
while(cin>>n){
for(int i=0; i<n; i++){
int temp;
cin >> temp;
q.push(temp);
}
int res = 0;
while(q.size()>1){
int x = q.top();
q.pop();
int y = q.top();
q.pop();
res += x+y;
q.push(x+y);
}
cout << res << endl;
}
}
