給出了列表l = [x_1,...,x_n]。名單中的每一個元素都是某塊木頭的長度。要粘合長度爲a和b的兩塊木頭,您需要最大(a,b)的膠水。膠合後,你得到一塊長度爲a + b的木頭。計算最小膠量來粘合所有的部分。貪心算法還是動態規劃?
你認爲貪婪算法在這裏工作嗎?我想不出任何例子。說貪婪算法我的意思是:拿兩塊最小長度的膠粘它們,直到所有塊都粘在一起。使用一些優先級隊列,這可以在O(n log n)複雜度中完成。
這是否行得通?如果沒有,請給我一些列表l的例子,它可以粘在比貪婪算法要少的膠水中。
粘合2件是否會增加長度? – SGM1
你的意思是?當你粘合兩段長度a和b時,你會得到新的長度a +長度b。 – piternet
兩根棍子可以粘在一起,這就是爲什麼我問。在這種情況下,恕我直言,膠水的數量取決於長度。 – SGM1