mirror of
https://github.com/krahets/hello-algo.git
synced 2025-12-19 07:17:54 +08:00
Unify punctuation.
This commit is contained in:
@@ -28,8 +28,8 @@
|
||||
|
||||
当我们做出物品 $i$ 的决策后,剩余的是前 $i-1$ 个物品的决策。因此,状态转移分为两种情况:
|
||||
|
||||
- **不放入物品 $i$** :背包容量不变,状态转移至 $[i-1, c]$ ;
|
||||
- **放入物品 $i$** :背包容量减小 $wgt[i-1]$ ,价值增加 $val[i-1]$ ,状态转移至 $[i-1, c-wgt[i-1]]$ ;
|
||||
- **不放入物品 $i$** :背包容量不变,状态转移至 $[i-1, c]$ 。
|
||||
- **放入物品 $i$** :背包容量减小 $wgt[i-1]$ ,价值增加 $val[i-1]$ ,状态转移至 $[i-1, c-wgt[i-1]]$ 。
|
||||
|
||||
上述的状态转移向我们揭示了本题的最优子结构:**最大价值 $dp[i, c]$ 等于不放入物品 $i$ 和放入物品 $i$ 两种方案中的价值更大的那一个**。由此可推出状态转移方程:
|
||||
|
||||
@@ -51,10 +51,10 @@ $$
|
||||
|
||||
搜索代码包含以下要素:
|
||||
|
||||
- **递归参数**:状态 $[i, c]$ ;
|
||||
- **返回值**:子问题的解 $dp[i, c]$ ;
|
||||
- **终止条件**:当物品编号越界 $i = 0$ 或背包剩余容量为 $0$ 时,终止递归并返回价值 $0$ ;
|
||||
- **剪枝**:若当前物品重量超出背包剩余容量,则只能不放入背包;
|
||||
- **递归参数**:状态 $[i, c]$ 。
|
||||
- **返回值**:子问题的解 $dp[i, c]$ 。
|
||||
- **终止条件**:当物品编号越界 $i = 0$ 或背包剩余容量为 $0$ 时,终止递归并返回价值 $0$ 。
|
||||
- **剪枝**:若当前物品重量超出背包剩余容量,则只能不放入背包。
|
||||
|
||||
=== "Java"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user