作者回复: 我们一起加油!有任何相关问题,都欢迎留言讨论。我也会尽我所能帮你解答。
作者回复: 恩,这样处理没有问题。顶上去,让大家看到。
作者回复: 并不是这样,因为 dp[tn][rw]是背包在处理第tn个物品后背包剩余rw容量的最优解,那么如果我们没有把第tn件物品放进去,那么肯定就是dp[tn-1][rw]。当时如果我们要把第tn件物品放进去,那么放进去背包之后容量就只剩下了rw-w[tn],所以需要取得就是dp[tn-1][rw-w[tn]](也就是在容量只剩下rw-w[tn]得情况下,处理第tn-1个物品时最优是多少)。
作者回复: 赞,没问题。顶上去!
作者回复: 这样是可以的。赞,让大家看到。
作者回复: 这个背包内可以容纳的物品只取决于背包的容量和物品的重量,示例数据里背包容量为2的情况下,最优解肯定是3,因为永远只能装下一个物品,这个是不是对问题的理解有什么偏差。
作者回复: 给你点个赞,注释能帮助到更多人!
作者回复: 这段C#代码没有问题。赞。
作者回复: 这里n的确指的是处理第n个物品后的最优解,的确不是选了几个item。只不过你调整物品的顺序肯定也不影响这个最优解而已。
作者回复: 是的,应该是背包容量小于当前物品重量或者体积