0710-背包问题-初始化的细节

今早说到T2,关于背包那个部分,为什么初始化不能为0,下面进行解释

转自点击打开链接(感谢大佬Orz)

背包问题有两种问法:

1.恰好装满背包的最优解

2.没要求装满背包,仅要求价格最大

-----------------------------------------------

对于第一种,除F[0]外其他全赋值为-maxlongint

对于第二种,全赋值为0

--------------------------------

理解:

初始化的f数组事实上就是在没有任何物品可以放入背包时的合法状态。

如果要求背包恰好装满,那么此时只有容量为0的背包可能被价值为0nothing“恰好装满,其它容量的背包均没有合法的解,属于未定义的状态,它们的值就都应该是-∞了。

如果背包并非必须被装满,那么任何容量的背包都有一个合法解什么都不装,这个解的价值为0,所以初始时状态的值也就全部为0了。

猜你喜欢

转载自blog.csdn.net/weixin_42557561/article/details/80979935
今日推荐