【发布时间】:2018-01-10 06:44:57
【问题描述】:
有些物品有N堆箱子。
每个盒子:可以有不同数量的物品。 每件商品的成本可能不同。
你必须购买 K 个单位的物品。 所有盒子都堆叠在一起,这意味着您只能从顶部购买并向下移动。
您如何以最优方式购买 K 件商品,从而使总成本最小化? (我们可以假设您可以购买部分盒子)
示例 1:
堆栈A = [1, 4], [2, 3], [5, 1] ,[10, 50], [1, 5]
StackB = [4, 1], [6, 7], [2, 3] ,[14, 7], [6, 1], [19, 4]
K = 10
哪里 [x, y] = [盒子里的物品数量,每件物品的成本]
最佳购买是:
StackA = 从顶部购买 2 个完整的盒子,第三个从顶部购买部分 => (1x4=4), (2x3=6), (3x1=3) = 成本 = 13强>
StackB = 购买第一盒 => (4x1=4) => 成本 = 4
购买 10 件商品的最低总成本为 4 + 13 = 17
示例 2:
堆栈A = [1, 100], [100, 1]
StackB = [10, 1], [6, 15], [25, 30] ,[15, 2], [60, 1], [19, 4]
K = 80
最佳购买是:
StackA = 买一整盒,从第二个买 79 => (1x100=100), (79x1=79), = 成本 = 179
购买 80 件商品的最低总成本为 179
【问题讨论】:
标签: algorithm