说起背包,真是一个让人既高兴又头疼的东西。高兴的是它有模板可套,头疼的是看不出题目用什么背包模型!!!可能是现在的自己真的菜。看背包九讲,看着看着就晕了...
01背包是最基础的模型,其他背包问题大都可以转化成01背包求解。
初始化的细节问题
我们看到的求最优解的背包问题题目中, 事实上有两种不太相同的问法。 有的题目要求“恰好装满背包”时的最优解,有的题目则并没有要求必须把背包装满。实现方法是在初始化的时候有所不同。
- 第一种问法, 要求恰好装满背包,那么在初始化时除了 f[0] 为 0 其它f[1..V] 均设为 - ∞,这样就可以保证最终得到的 f[N] 是一种恰好装满背包的最优解。
- 如果并没有要求必须把背包装满,而是只希望价格尽量大,初始化时应该将f[0..V] 全部设为 0。