三个问题
1. 0/1 还是完全?
0/1: 遍历体积从大到小遍历
完全: 遍历体积从小到大遍历
2. 求最值还是求方案数?
3. 不超过V or 恰好为V or 至少为V?
2和3共同影响了初始化!
4个最值问题
- 不超过V
全部初始化为0,即f[i] = 0, 0 <= i <= m, 只会求最大值
- 恰好为V
- 求最大值
f[0] = 0, 其余是-INF
- 求最小值
f[0] = 0, 其余是INF
- 求最大值
- 至少为V
f[0] = 0, 其余是INF,只会求最小值
最值问题总结: f[0]一定是0,f[1-m]值都一样,可能是0,可能是INF,可能是-INF
3个方案数
- 不超过V
全部初始化为1,即f[i] = 1, 0 <= i <= m
- 恰好为V
f[0] = 1, 其余为0
- 至少为V
f[0] = 1, 其余为0
方案数问题总结: f[0]一定是1,f[1-m]都一样,可能是1,也可能是0
参考
https://www.acwing.com/file_system/file/content/whole/index/content/1306630/