题目:传送门。
题意:中文题。
题解:就是构造一颗哈夫曼树,数据结构里的知识。
#include <iostream> #include <cstdio> #include <cmath> #include <queue> #include <algorithm> using namespace std; struct cmp { bool operator ()(long long &a,long long &b) { return a>b; } }; int main() { long long n,a,b,sum; while(cin>>n) { sum=0; priority_queue<long long,vector<long long>,cmp>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; }
时间: 2024-10-11 08:54:03