我有幾種類型的硬幣,每種都有重量(wi)和成本(ci)。所以我必須做一個揹包,重量== W和(!)硬幣的最低成本。我不能讓使用DP的復發關係。最低成本的揹包
最低成本的揹包
回答
就制定通常遞推關係...
標明用總重k作爲Min_cost(K)實現最小成本。
引導與記憶化:
Min_cost(0) = cost of empty set = 0
然後解決了使用增加k的取值情況:
Min_cost(i+1) = min [Min_cost(i) + min [ci, for all items with wi = 1],
Min_cost(i-1) + min [ci, for all items with wi = 2],
Min_cost(i-2) + min [ci, for all items with wi = 3],
...
Min_cost(2) + min [ci, for all items with wi = w-1],
Min_cost(1) + min [ci, for all items with wi = w],
Min_cost(0) + min [ci, for all items with wi = w+1]]
如果沒有當前wi的元素,在這種情況下如何找到min [ci,對於wi = 1的所有項目]?例如W = 100和2種類型的項目:w1 = 1 c1 = 1; w2 = 50 c2 = 30,所以這裏的答案應該是60,我不能用你的算法得到它。你能更好地解釋你的想法嗎? – user2178460 2013-03-17 07:51:39
如果沒有wi = 1的項目,那麼對於重複中所有wi = 1行的項目,您不能擁有Min_cost(i)+ min [ci,因爲這些項目不存在。至於相同類型的多個硬幣,每個硬幣的數量是多少?因爲Min_cost(50)= min [Min_cost(49)+ c1,Min_cost(0)+ c2),直到你計算Min_cost(50),此時它將切換到c2, ] = min [49 + 1,0 + 30] = 30'。在W = 90時,你會得到Min_cost(100)= 60。順便說一下,這看起來像一個算法分配...希望你沒有使用StackOverflow作業:) – 2013-03-17 08:04:56
好吧,現在已經很清楚了。謝謝。 – user2178460 2013-03-17 08:14:32
- 1. 揹包的變化 - 確切重量的最低總成本
- 2. 返回最低成本!
- 3. 需要R包的最低版本
- 4. 找到物品的最佳組合,以最低的成本。也許揹包變種?
- 5. 成本最低的Windows VPS託管?
- 6. 收發器網絡的最低成本
- 7. 僅選擇最低成本的行
- 8. 標籤頂點打造最低成本
- 9. 如何找到最低成本?
- 10. 最低成本路徑障礙(R)(gdistance)
- 11. 建立網站最快,維護成本最低的方法?
- 12. Android SDK所需的最低軟件包
- 13. 發佈嚴格要求最低節點版本的npm包
- 14. 查找乘船的成本最低,使用遞歸和緩存
- 15. 從n個桶中選擇物品的最低成本
- 16. 蟒蛇一次檢查各種平等的最低成本
- 17. 揹包查找最大值
- 18. Tensorflow:何時停止由於最佳(最低)成本而進行的培訓?
- 19. 通過消除負循環來尋找最低成本循環
- 20. 如何在2D矩陣中找到最低成本路徑
- 21. 搜索加權圖形,最低成本,記得路線
- 22. 選擇貪婪算法找到最低成本路徑
- 23. JAX-RS 1.1的最低Servlet API版本
- 24. 強制執行最低版本的Maven
- 25. 支持C++的最低iOS版本0x
- 26. 最低要求的版本管理
- 27. 友好的Windows最低版本中InnoSetup
- 28. 確定最低要求的PHP版本
- 29. Phusion Passenger的Apache最低版本
- 30. 使用jqGrid的最低jQuery版本
你的意思是你被允許做的關係? – 2013-03-17 03:23:08
我必須做一個關係,或者如何在沒有它的情況下使用DP? – user2178460 2013-03-17 03:25:26