裸哈夫曼
#include<bits/stdc++.h>
using namespace std;
//哈夫曼算法
priority_queue<int, vector<int>, greater<int> > pq;
int n, l, ans = 0;
int main(){
scanf("%d",&n);
while(n--){
scanf("%d",&l);
pq.push(l);
}
while(pq.size() != 1){
l = pq.top(); pq.pop();
l += pq.top(); pq.pop();
ans += l;
pq.push(l);
}
printf("%d\n", ans);
//system("pause");
return 0;
}
仅供参考 切勿抄袭
hang hang hang !!!`