0
点赞
收藏
分享

微信扫一扫

POJ 3253 Fence Repair【哈夫曼树】

半秋L 2023-02-22 阅读 44


哈夫曼树


注意结果要用long long 因为Li可能被加和多次 N*max(Li)不不是求和的最大值

#include <iostream>
#include <queue>
#include <vector>
#include <algorithm>

using namespace std;

#define debug(x) cout<<#x<<": "<<(x)<<endl;
#pragma warning(disable:4996)



int main()
{
//freopen("../in2.txt","r",stdin);

priority_queue< int, vector<int>, greater<int> > q;
int N;
cin >> N;
for (int i = 0; i < N; ++i) {
int t;
cin >> t;
q.push(t);
}
long long int ret = 0;
while (q.size() > 1) {
int a = q.top();
q.pop();
int b = q.top();
q.pop();
q.push(a + b);
ret += a + b;
}

cout << ret << endl;

return 0;
}

POJ 3253 Fence Repair【哈夫曼树】_#include


举报

相关推荐

0 条评论