51nod 1117 聪明的木匠 (哈夫曼树)
题目:传送门。
题意:中文题。
题解:就是构造一颗哈夫曼树,数据结构里的知识。
#include <iostream> #include <cstdio> #include <cmath> #include <queue> #include <algorithm> using namespace std; int main() { long long n,a,b,sum; while(cin>>n) { sum=0; priority_queue<long long,vector<long long>,greater<long long> >q; while(n--) { cin>>a; q.push(a); } while(q.size()>1) { a=q.top(); q.pop(); b=q.top(); q.pop(); sum=sum+a+b; q.push(a+b); } cout<<sum<<endl; } return 0; }