PAT4-07. 修理牧场

哈夫曼树的非叶子节点之和,贪心算法

#include<queue>
#include<iostream>
using namespace std;
int main(){
  int total(0),n;  cin>>n;
  priority_queue<int,vector<int>,greater<int> >que;
  for(int i=0,k;i<n;++i){
    cin>>k;
    que.push(k);
  }
  while(que.size()>1){
    int a=que.top();que.pop();
    int b=que.top();que.pop();
    total+=a+b;
    que.push(a+b);
  }
  cout<<total;
  return 0;
}




你可能感兴趣的:(PAT4-07. 修理牧场)