Re: [問題] 一個感覺是 dynamic programming 的題目
提供小弟思考之後的淺見 有錯煩請指教
1. 建一個list 照重量排序
2. 把載重最大的放最下面
3. 把重量在可容許的最大載重以下的最重的箱子放上,並更新剩餘容許載重
4. 直到無法在放上任何箱子,紀錄最高層數,並取下最上層的箱子,再放上
次重的箱子,直到無法繼續,再次紀錄層數。(一直遞迴...)
※ 引述《walker2009 (誰人未嘗自以為)》之銘言:
: 朋友問了我一個題目 我感覺是 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: 140.112.101.114
推
04/20 17:02, , 1F
04/20 17:02, 1F
→
04/20 17:02, , 2F
04/20 17:02, 2F
→
04/20 17:03, , 3F
04/20 17:03, 3F
→
04/20 17:03, , 4F
04/20 17:03, 4F
→
04/20 17:04, , 5F
04/20 17:04, 5F
→
04/20 17:04, , 6F
04/20 17:04, 6F
→
04/20 17:21, , 7F
04/20 17:21, 7F
→
04/20 17:22, , 8F
04/20 17:22, 8F
→
04/20 17:22, , 9F
04/20 17:22, 9F
推
04/20 17:27, , 10F
04/20 17:27, 10F
→
04/20 17:27, , 11F
04/20 17:27, 11F
→
04/20 17:58, , 12F
04/20 17:58, 12F
推
04/20 17:59, , 13F
04/20 17:59, 13F
→
04/20 18:00, , 14F
04/20 18:00, 14F
→
04/20 18:00, , 15F
04/20 18:00, 15F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):