有两个著名的背包问题:
1)给定n个物品,每个物品有其重量和成本。我们需要选择物品,将其装入我们的背包中,并使其总成本最大化。可以使用动态规划轻松解决。
2)分数背包:与第一个问题相同,但我们不仅可以取整个物品,还可以取其一部分。这个问题可以使用贪心算法轻松解决。
假设我们使用第二个问题的贪心算法来解决第一个问题。我该如何证明,我们得到的解决方案不会比最优解差两倍以上?
1)给定n个物品,每个物品有其重量和成本。我们需要选择物品,将其装入我们的背包中,并使其总成本最大化。可以使用动态规划轻松解决。
2)分数背包:与第一个问题相同,但我们不仅可以取整个物品,还可以取其一部分。这个问题可以使用贪心算法轻松解决。
假设我们使用第二个问题的贪心算法来解决第一个问题。我该如何证明,我们得到的解决方案不会比最优解差两倍以上?
int
并不是限制条件-只需扩大规模,使用体积为1e100
的背包;物品A
的重量为1
,成本为1
,物品B
的重量为1e100
,成本为1e100-1
。 - Dmitry Bychenko