題意 : 將一個木板鋸成N塊(即鋸N-1次)。規則是每次將一個長度爲L的木板鋸成2塊(不一定相等), 代價是L元。求N-1次代價的最小值。
開始以爲是動態規劃了,這題確實可以很容易找到子問題,而且子問題間會出現不少重疊,鋸一個木板的代價 = Min{ 鋸它的兩個子木板的代價之和 } + 所鋸木板長度, 但在哪裏鋸這個木板就很難決定了,子問題數量太多,叉掉。
也想過貪心,但沒想到是哈弗曼編碼問題。
知道這題用貪心,剩下的就比較簡單了,代碼就不貼了。
題意 : 將一個木板鋸成N塊(即鋸N-1次)。規則是每次將一個長度爲L的木板鋸成2塊(不一定相等), 代價是L元。求N-1次代價的最小值。
開始以爲是動態規劃了,這題確實可以很容易找到子問題,而且子問題間會出現不少重疊,鋸一個木板的代價 = Min{ 鋸它的兩個子木板的代價之和 } + 所鋸木板長度, 但在哪裏鋸這個木板就很難決定了,子問題數量太多,叉掉。
也想過貪心,但沒想到是哈弗曼編碼問題。
知道這題用貪心,剩下的就比較簡單了,代碼就不貼了。