← 返回算法可视化主页

🎒 01背包 动态规划 · 每个物品最多选一次

有 n 个物品,每个有重量 w[i] 和价值 v[i]。背包容量 C,关键决策:拿还是不拿?

已算 0 / 0 答案 ?
就绪
💡 说明
「下一步」 看 01背包如何逐格决策。
每步展示:不拿(上一行同列) vs (上一行左移)→ 取较大值。 键盘 ← → 控制,空格自动播放。

📦 物品清单

#重量 w价值 v价重比

⚖️ 决策:容量 = ?,考虑物品 #?

⛔ 不拿
dp[i-1][c]
?
← dp[?][?]
✅ 拿
dp[i-1][c-w] + v
?
← dp[?][?] + ?

📊 DP 表 dp[i][c] 行=前 i 物品,列=容量

⭐ 当前最优

📖 图例

不拿来源
拿的来源
当前计算格

📄 C++ 代码 高亮行 = 当前执行

行 1

📖 运行日记

准备好了,点「下一步」→