标签:style class blog code http tar
//做哈夫曼树时,可以用优先队列(误?)
//这道题教我们优先队列的一个用法:取前n个数(最大的或者最小的)
//哈夫曼树 //64位 //超时->优先队列,,,, //这道题的优先队列用于取前2个小的元素 #include <iostream> #include<stdio.h> #include<string.h> #include<algorithm> #include<queue> using namespace std; __int64 ans,a[20010]; int n; struct cmp { bool operator ()(__int64 &a,__int64 &b){ return a>b; } }; priority_queue<__int64,vector<__int64>,cmp> q; void hfm() { __int64 min1,min2,neww,yi; while(n>1) { yi=0; min1=q.top(); q.pop(); min2=q.top(); q.pop(); neww=min1+min2; ans+=neww; q.push(neww); n--; } } int main() { int i; while(scanf("%d",&n)!=EOF) { while(!q.empty())q.pop(); for(i=0;i<n;i++) { scanf("%I64d",&a[i]); q.push(a[i]); } ans=0; if(n>1) hfm(); else ans=a[0]; printf("%I64d\n",ans); } return 0; }
POJ 3253 Fence Repair(优先队列,哈夫曼树),布布扣,bubuko.com
POJ 3253 Fence Repair(优先队列,哈夫曼树)
标签:style class blog code http tar
原文地址:http://www.cnblogs.com/laiba2004/p/3808955.html