【发布时间】:2014-07-21 02:43:45
【问题描述】:
给定N对象,它们是1~n,第i个对象的体积是ti和ti <= M;同时,有很多箱子,每个箱子的体积为M。现在我们应该将所有这些对象放入 1~N 顺序的盒子中,最少应该使用多少个盒子?
例如,有 5 个对象,它们的体积为{7,2,5,3,9},顺序为 1~5。每个盒子的体积是10。所以最优解是3个盒子,它们分别是{7},{2,5,3},{9}。
我的解决方案:贪心算法。假设第 i 个物体的最优解是 x 个盒子被填满,剩余空间是 y,那么对于第 i+1 个物体,如果它的体积大于 y,它必须被放入另一个新盒子。否则,一种选择是将其放入当前框中,解决方案为(x,y-v);另一种选择是把它放到另一个新的盒子里,解决方案是(x+1, M-v)。
问题:如何用动态规划解决?
【问题讨论】:
-
尝试用谷歌搜索垃圾箱包装问题。
标签: algorithm dynamic-programming