[問題] 一個感覺是 dynamic programming 的題目

看板Prob_Solve (計算數學 Problem Solving)作者 (誰人未嘗自以為)時間14年前 (2010/04/20 14:24), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串1/12 (看更多)
※ [本文轉錄自 C_and_CPP 看板] 作者: walker2009 (誰人未嘗自以為) 看板: C_and_CPP 標題: [問題] 一個感覺是 dynamic programming 的題目 時間: Tue Apr 20 14:12:20 2010 朋友問了我一個題目 我感覺是 dynamic programming 但又不太確定 (因為我找不到最後的解跟 subproblem 之間的關係 Q_Q) 題目是這樣的: 給定 n 個箱子, 每個箱子有其自己的 重量 以及 載重量 現在要將箱子一層一層往上疊, 順序不拘 每個箱子上方所有的重量加起來不能超過自己的載重量 試問, 最高可以疊到幾層? 我一開始想法是, 最大載重量的放最下層 之後第 k 層 會選擇 下面 k-1 個箱子中 min(剩餘載重量最大的那一個 - 第i個箱子的重量, 第i個箱子的載重量) 最大的那個 for all i = 1 to n and i'th box has not been used 但後來 verify 發現這想法有錯誤, 而且感覺好像有點偏 greedy 每次想 dp 的題目我都會不自覺往 greedy 那邊想過去 不知道該如何培養對 dp 的敏銳度 Orz 希望有概念的大大能指導一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.236.211 ※ 編輯: walker2009 來自: 114.32.236.211 (04/20 14:13)

04/20 14:20,
有 prob_solve 板唷
04/20 14:20

04/20 14:21,
喔喔喔喔! 3q
04/20 14:21
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.236.211

04/20 16:43, , 1F
單看問題的話,我覺得這比較像NPC問題(0-1背包問題)
04/20 16:43, 1F

04/20 16:45, , 2F
就算存在DP解可能也很慢
04/20 16:45, 2F

04/20 17:10, , 3F
我好像搞錯了...請刪除吧
04/20 17:10, 3F

04/20 18:04, , 4F
XD
04/20 18:04, 4F

04/20 18:05, , 5F
以最下面那個箱子而言 的確上面感覺像是 0-1背包問題
04/20 18:05, 5F

04/20 18:05, , 6F
但以第二個箱子而言 上面又是另外一個 0-1背包問題
04/20 18:05, 6F

04/20 18:06, , 7F
提供了我一個思考方向 感恩!
04/20 18:06, 7F
文章代碼(AID): #1BpKYZBd (Prob_Solve)
討論串 (同標題文章)
文章代碼(AID): #1BpKYZBd (Prob_Solve)