Files
python/TangDou/AcWing/BeiBao/【总结】背包问题的至多_恰好_至少-主帖.md
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

63 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[原贴](https://www.acwing.com/blog/content/458/)
### 一、学习过程总结
一开始学背包问题时遇到的大多数的状态表示是:从前$i$个物品中选,且总体积**至多**是$j$的问题。
慢慢地在提高课中,就有出现状态表示是:从前$i$个物品中选,且总体积**恰好**是$j$的问题。例如 [$AcWing$ $1023$. 买书](https://www.cnblogs.com/littlehb/p/15668269.html) ,求的是恰好是$j$的**总方案数**问题。
同时还出现了状态表示是:从前$i$个物品中选,且总体积**至少**是$j$的问题。例如 [$AcWing$ $1020$. 潜水员](https://www.cnblogs.com/littlehb/p/15689906.html) ,求的是总体积**至少**是$j$的**最小价值**。
### 二、求方案数初始化总结
#### 二维情况
1. **体积至多$j$** 【$01$+完全】
$f[0][i] = 1$, $0 <= i <= m$,其余是$0$ [示例](https://www.cnblogs.com/littlehb/p/15848671.html)
**初始化解释**:
用前$0$种物品,在小于$i$的空间内,方案数是$1$,表示由于啥也不能选择,所以不管是哪个空间,都只能有一种方案,就是啥也不选。
<br>
2. **体积恰好$j$** 【$01$+完全】
$f[i][0] = 1$, 其余是$0$ [示例](https://www.cnblogs.com/littlehb/p/15848681.html)
**初始化解释**:
在前$i$种物品中选择,恰好空间为$0$的方案数,只能是啥也不选。
<br>
3. **体积至少$j$** 【只$01$背包】
$f[0][0] = 1$, 其余是$0$ [示例](https://www.cnblogs.com/littlehb/p/15848682.html)
**初始化解释**:
在前$0$种物品中选择,空间至少为$0$的方案数,只能是啥也不选
#### 一维情况
1. 体积至多$j$, $f[i] =1$, $0 <= i <= m$ [示例](https://www.cnblogs.com/littlehb/p/15848671.html)
2. 体积恰好$j$, $f[0] =1$, 其余是$0$ [示例](https://www.cnblogs.com/littlehb/p/15848681.html)
3. 体积至少$j$, $f[0] =1$, 其余是$0$ [示例](https://www.cnblogs.com/littlehb/p/15848682.html)
---
### 三、求最大值最小值初始化总结
#### 二维情况
1. **体积至多$j$** 【$01$+完全】
$f[i,j] = 0$,$0 <= i <= n, 0 <= j <= m$( <font color='blue' size=4><b>只会求价值的最大值</b></font>)[示例](https://www.cnblogs.com/littlehb/p/15848699.html)
2. **体积恰好$j$**:
当求价值的最小值:$f[0][0] = 0$, 其余是$INF$ [示例](https://www.cnblogs.com/littlehb/p/15848719.html)
当求价值的最大值:$f[0][0] = 0$, 其余是$-INF$ [示例](https://www.cnblogs.com/littlehb/p/15848821.html)
3. **体积至少$j$**,$f[0][0] = 0$,其余是$INF$(只会求价值的最小值) [示例](https://www.cnblogs.com/littlehb/p/15848743.html)
#### 一维情况
1. 体积至多$j$,$f[i] = 0, 0 <= i <= m$( <font color='blue' size=4><b>只会求价值的最大值</b></font>) [示例](https://www.cnblogs.com/littlehb/p/15848699.html)
2. 体积恰好$j$: 【$01$+完全】
* 当求价值的最小值:$f[0] = 0$, 其余是$INF$ [示例](https://www.cnblogs.com/littlehb/p/15848719.html)
* 当求价值的最大值:$f[0] = 0$, 其余是$-INF$ [示例](https://www.cnblogs.com/littlehb/p/15848821.html)
3. 体积至少$j$,$f[0] = 0$,其余是$INF$(只会求价值的最小值) [示例](https://www.cnblogs.com/littlehb/p/15848743.html)