【发布时间】:2017-08-01 23:10:44
【问题描述】:
有 n 个具有不同权重的对象。我们必须找到包装所有重量所需的最小箱子数量,其中每个箱子的最大重量为 K。箱子可以包含任意数量的物体,但重量应小于或等于给定的重量 K。
所有权重都小于或等于K。
例如,设 K= 13 且对象为 {2,3,4,5,6,7,8,9},所需的最小框数为 4,即 {4,9}, {5, 8}、{6,7}、{2,3}
我应该如何解决这个问题?
【问题讨论】:
有 n 个具有不同权重的对象。我们必须找到包装所有重量所需的最小箱子数量,其中每个箱子的最大重量为 K。箱子可以包含任意数量的物体,但重量应小于或等于给定的重量 K。
所有权重都小于或等于K。
例如,设 K= 13 且对象为 {2,3,4,5,6,7,8,9},所需的最小框数为 4,即 {4,9}, {5, 8}、{6,7}、{2,3}
我应该如何解决这个问题?
【问题讨论】:
这几乎类似于0-1背包问题。可以使用动态规划来解决。经典背包问题与您的问题之间的区别在于,您的情况有多个背包。
背包问题或背包问题是组合问题 优化:给定一组项目,每个项目都有一个权重和一个值, 确定要包含在集合中的每个项目的数量,以便 总重量小于或等于给定限制且总重量 值尽可能大。
来源 - 维基百科
Here's 算法和很好的解释。
【讨论】: