哈弗曼樹是能保證權值*路徑的和最小的數據結構
哈弗曼樹的構造是建立在小根堆以上的
首先先建立一個小根堆
每次取出小根堆的兩個頂端元素
再把兩個元素相加放入小根堆中直到只剩一個元素
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); }
新聞熱點
疑難解答