/*
por3242-fence repair
題目大意:給定乙個木條,鋸成指定要求的長度,每鋸一次花費是被鋸成的兩段長度之和。
求最小的花費。
解題思路:
將小木條合併成乙個大木條,貪心。每次都選取最小的長度合併。求最小的時候用優先佇列。
*/#include
#include
#include
#include
#pragma warning(disable:4996)
using
namespace
std;
//最小堆的比較函式
struct cmp
};int main()
int a, b;
while (1 != q.size())
printf("%lld\n", sum);
return
0;}
poj3253 優先佇列
解題思路 分析得非常好!利用huffman思想,要使總費用最小,那麼每次只選取最小長度的兩塊木板相加,再把這些 和 累加到總費用中即可 本題雖然利用了huffman思想,但是直接用huffmantree做會超時,可以用優先佇列做 因為樸素的huffmantree思想是 1 先把輸入的所有元素公升序排...
poj 3253哈夫曼樹
題目的意思是。要把一塊木板切成所需要的n塊,但是每切一刀需要收費。收費的方法是 網上有一些人理解有誤 每當在一塊木板上動刀子,這塊木板的原有長度代表了這刀的費用。思路 切割的過程可以用一棵二叉樹表示,每個節點有兩個或者沒有子節點,節點儲存切割過程中每塊木板的長度。父節點的值 兩個子節點相加 根節點是...
poj 3253 哈夫曼思想 優先佇列實現
這兩天都沒怎麼寫 因為數學拉的太多了。期中考來了。今天看了一篇文章,又想起這題,就跑來看看,發現之前居然並沒有寫題解。思路,每個木板的開銷應該是木板的長度乘以節點的深度。那麼就是最短的板應該是深度最大的節點之一,每次將最短的和次短的合併起來就是當前最小的開銷,一直加起來直到所有木板最後合併成乙個木板...