0
点赞
收藏
分享

微信扫一扫

背包问题中的“至少至多恰好”问题

一葉_code 2022-02-01 阅读 87

前言

对于背包问题的至少,至多,恰好问题,他们的状态转移方程其实是不变的,需要考虑的只有初始化的问题和一些特殊点的特判

这里的二维指的是没有状态优化的二维,而不是二维费用\

 

求方案数初始化


二维情况
1、体积至多j,f[0][i] = 1, 0 <= i <= m,其余是0
2、体积恰好j,f[0][0] = 1, 其余是0
3、体积至少j,f[0][0] = 1,其余是0                状态转移max(0,..)

从状态定义的本身出发

一维情况
1、体积至多j,f[i] = 1, 0 <= i <= m,
2、体积恰好j,f[0] = 1, 其余是0
3、体积至少j,f[0] = 1,其余是0                    状态转移max(0,..)                   

求最大值最小值初始化总结


二维情况
1、体积至多j,f[i,k] = 0,0 <= i <= n, 0 <= k <= m(只会求价值的最大值)

如果求最小值,包含了往前没有选的所有方案,无法计算
2、体积恰好j,
当求价值的最小值:f[0][0] = 0, 其余是INF
当求价值的最大值:f[0][0] = 0, 其余是-INF
3、体积至少j,f[0][0] = 0,其余是INF(只会求价值的最小值)

求最大值,包含了往后的所有方案,无法计算

一维情况
1、体积至多j,f[i] = 0, 0 <= i <= m(只会求价值的最大值)
2、体积恰好j,
当求价值的最小值:f[0] = 0, 其余是INF
当求价值的最大值:f[0] = 0, 其余是-INF
3、体积至少j,f[0] = 0,其余是INF(只会求价值的最小值)

举报

相关推荐

# 背包问题

0 条评论