哈弗曼树是能保证权值*路径的和最小的数据结构
哈弗曼树的构造是建立在小根堆以上的
首先先建立一个小根堆
每次取出小根堆的两个顶端元素
再把两个元素相加放入小根堆中直到只剩一个元素
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);
}
本文介绍了哈弗曼树的基本概念及其构造过程。哈弗曼树是一种特殊的二叉树,可以确保权重*路径长度之和最小。通过使用小根堆进行元素的不断合并,直至最后得到一颗完整的哈弗曼树,此过程中所有权重之和即为最优解。
286

被折叠的 条评论
为什么被折叠?



