- 0
- 0
- 约5.47千字
- 约 5页
- 2026-05-27 发布于北京
- 举报
J1-1
布尔计数型背包
一、知识点
常规的01背包计算的是价值的最大值,如果经过初始化调整也可以求最小值。
除了求最值外,01背包还可以用来判断可行性以及求可能的情况数,这种我们称为布尔型
背包与计数型背包。
它们的整体思路和常规最值背包一致,只不过在转移方程与初始值有所差异。
(1)布尔型背包
此时,dp[n][v]表示的是前n个物体总体积为v是否可行,可行为0,不可行为1。
很自然可以得到转移方程:
dp[i][j]=dp[i-1][j]||dp[i-1][j-x]
其中x为第i个物体的体积。
同样,也可以把空间压缩为一维:
dp[j]=dp[j]||dp[j-x]
或者利用位运算直接简化为:
dp[j]|=dp[j-x]
初始值只需要把dp[0]=1,因为在不用任何物体的情况下,只有总体积为0才是可行的。
(2)计数型背包
此时,dp[n][v]表示的是前n个物体总体积为v的情况数。
其转
原创力文档

文档评论(0)