poj 3253 哈夫曼树 经典 运用了优先队列 总和最少
其中巧妙的运用了优先队列,将哈夫曼树的精髓给表达了出来
需要注意的是其中的优先队列的定义,一定要有自定义比较
#include <iostream> #include <cstdio> #include <queue> using namespace std; struct node { __int64 value; bool operator <(const node &a)const { return value>a.value; } }temper; int main() { priority_queue<node> qu; int i,n; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&temper.value); qu.push(temper); } __int64 ans=0; while(qu.size()>1) { int a,b; a=qu.top().value; qu.pop(); b=qu.top().value; qu.pop(); temper.value=a+b; qu.push(temper); ans+=a+b; } printf("%I64d\n",ans); return 0; }