当前位置: 代码迷 >> 综合 >> POJ 3253 优先队列解哈夫曼树
  详细解决方案

POJ 3253 优先队列解哈夫曼树

热度:44   发布时间:2024-01-20 20:19:43.0

这是一棵普通的二叉哈夫曼树。

#include<iostream>
#include<queue>
using namespace std;int main()
{int N;while( scanf("%d",&N)!=EOF ){priority_queue< int,vector<int>,greater<int> > PQ;int len;__int64 ans=0;for( int i=0;i<N;i++ ){scanf( "%d",&len );PQ.push(len);}int sum=0;while( PQ.size()!=1 ){sum=PQ.top();PQ.pop();sum+=PQ.top();PQ.pop();PQ.push(sum);ans+=sum;}//ans+=PQ.top();printf( "%I64d\n",ans );}return 0;
}