哈弗曼树是能保证权值*路径的和最小的数据结构
哈弗曼树的构造是建立在小根堆以上的
首先先建立一个小根堆
每次取出小根堆的两个顶端元素
再把两个元素相加放入小根堆中直到只剩一个元素
ans就是最小权值之和
long long ans=0; while (len>1) { long long a,b; a=p[1]; heap_pop(); b=p[1]; heap_pop(); ans+=(a+b); heap_insert(a+b); }
新闻热点
疑难解答