- 分享
动态规划-01背包问题
- @ 2025-6-23 20:21:59
(1) 简单01背包题
问题描述
问题模型,个物品,每个物品重量为,价值为,给定背包为载重量为,求装的物品重量之和小于等于,价值之和最大?
状态(问题定义)
,表示在前个物品进行选取,所选的物品之和小于等于,价值之和最大.
初始化
~ 为0
状态转移方程
$$f[i][j] = \begin{cases} f[i-1][j] & \text{if } j < w[i] \\ \max(f[i-1][j], f[i-1][j-w[i]] + v[i]) & \text{if } j \geq w[i] \end{cases}$$
答案
(2) 简单01背包 恰好用完
问题描述
问题模型,个物品,每个物品重量为,价值为,给定背包为载重量为,求装的物品重量之和恰好等于,价值之和最大?
状态(问题定义)
,表示在前个物品进行选取,所选的物品重量之和等于,价值之和最大.
初始化
为0 ~ 为
状态转移方程
$$f[i][j] = \begin{cases} f[i-1][j] & \text{if } j < w[i] \\ \max(f[i-1][j], f[i-1][j-w[i]] + v[i]) & \text{if } j \geq w[i] \end{cases}$$
答案
小于0就无答案,否则就为
(3) 简单01背包 恰好用完的方案数
问题描述
问题模型,个物品,每个物品重量为,给定背包为载重量为,求装的物品重量之和恰好等于的方案数?
状态(问题定义)
,表示在前个物品进行选取,所选的物品重量之和等于,方案数.
初始化
为1 其他为0
状态转移方程
$$f[i][j] = \begin{cases} f[i-1][j] & \text{if } j < w[i] \\ f[i-1][j] + f[i-1][j-v[i]] & \text{if } j \geq w[i] \end{cases}$$
答案
2 条评论
-
小陈同学 (陈李钰) LV 5 @ 2025-8-12 18:14:30你好——————再见!!——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
🤡 1👀 1 -
@ 2025-7-28 16:36:44有道理,太有道理了!
- 1