#include<bits/stdc++.h> using namespace std; int a[10000]; int main() { int n,a1,a2,i; int sum=0; cin>>n; for(i=0;i<n;i++) { cin>>a[i]; } priority_queue<int , vector<int> , greater<int> >q; for(i=0;i<n;i++) { q.push(a[i]); } while(q.size()>1) { a1=q.top(); q.pop(); a2=q.top(); q.pop(); sum+=a1+a2; q.push(a1+a2); } cout<<sum<<endl; return 0; }
优先队列打哈弗曼树
猜你喜欢
转载自blog.csdn.net/qq_41049928/article/details/80639090
今日推荐
周排行