poj3253 貪心選擇

2021-07-25 10:49:05 字數 493 閱讀 8710

/*

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 哈夫曼思想 優先佇列實現

這兩天都沒怎麼寫 因為數學拉的太多了。期中考來了。今天看了一篇文章,又想起這題,就跑來看看,發現之前居然並沒有寫題解。思路,每個木板的開銷應該是木板的長度乘以節點的深度。那麼就是最短的板應該是深度最大的節點之一,每次將最短的和次短的合併起來就是當前最小的開銷,一直加起來直到所有木板最後合併成乙個木板...