POJ 3253(Huffman樹求最小權值)

2021-07-09 15:29:43 字數 386 閱讀 6531

題意:給出n個木棒長度,從無限長的木棒上鋸斷n-1次,每次鋸斷需要花費的代價為木棒的長度,求最小代價。

思路:huffman樹求最小權值的問題,用優先佇列可以很方便的解決這道題。

#include#include#include#include#include#includeusing namespace std;

const int inf=0x3f3f3f3f;

const int maxn=10010;

typedef __int64 ll;

ll n,x;

int main()

} printf("%i64d\n",sum);

} return 0;

}

poj 3253哈夫曼樹

題目的意思是。要把一塊木板切成所需要的n塊,但是每切一刀需要收費。收費的方法是 網上有一些人理解有誤 每當在一塊木板上動刀子,這塊木板的原有長度代表了這刀的費用。思路 切割的過程可以用一棵二叉樹表示,每個節點有兩個或者沒有子節點,節點儲存切割過程中每塊木板的長度。父節點的值 兩個子節點相加 根節點是...

poj3253 貪心選擇

por3242 fence repair 題目大意 給定乙個木條,鋸成指定要求的長度,每鋸一次花費是被鋸成的兩段長度之和。求最小的花費。解題思路 將小木條合併成乙個大木條,貪心。每次都選取最小的長度合併。求最小的時候用優先佇列。include include include include prag...

poj3253 優先佇列

解題思路 分析得非常好!利用huffman思想,要使總費用最小,那麼每次只選取最小長度的兩塊木板相加,再把這些 和 累加到總費用中即可 本題雖然利用了huffman思想,但是直接用huffmantree做會超時,可以用優先佇列做 因為樸素的huffmantree思想是 1 先把輸入的所有元素公升序排...