mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-26 13:46:29 +08:00
build
This commit is contained in:
parent
eaf77e6ac7
commit
48980ddf28
1 changed files with 4 additions and 4 deletions
|
@ -33,12 +33,12 @@ status: new
|
|||
|
||||
**第二步:找出最优子结构,进而推导出状态转移方程**
|
||||
|
||||
当我们做出物品 $i$ 的决策后,剩余的是前 $i-1$ 个物品的决策。因此,状态转移分为两种情况:
|
||||
当我们做出物品 $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$ 两种方案中的价值更大的那一个**。由此可推出状态转移方程:
|
||||
上述分析向我们揭示了本题的最优子结构:**最大价值 $dp[i, c]$ 等于不放入物品 $i$ 和放入物品 $i$ 两种方案中的价值更大的那一个**。由此可推出状态转移方程:
|
||||
|
||||
$$
|
||||
dp[i, c] = \max(dp[i-1, c], dp[i-1, c - wgt[i-1]] + val[i-1])
|
||||
|
|
Loading…
Reference in a new issue