poj 3253 优先级队列 哈夫曼编码
作者:
猴式智减法 | 来源:发表于
2018-02-08 10:42 被阅读0次#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
const int MAX_N = 50010;
typedef long long ll;
int N, L[MAX_N];
void solve() {
ll ans = 0;
priority_queue<int, vector<int>, greater<int> > que;
for (int i = 0; i < N; i++) {
que.push(L[i]);
}
while (que.size() > 1) {
int l1, l2;
l1 = que.top();
que.pop();
l2 = que.top();
que.pop();
ans += l1 + l2;
que.push(l1 + l2);
}
printf("%lld\n", ans);
}
int main() {
scanf("%d", &N);
for (int i = 0; i < N; i++) {
scanf("%d", &L[i]);
}
solve();
return 0;
}
本文标题:poj 3253 优先级队列 哈夫曼编码
本文链接:https://www.haomeiwen.com/subject/pfozzxtx.html
网友评论