You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.4 KiB
3.4 KiB
一、学习过程总结
一开始学背包问题时遇到的大多数的状态表示是:从前i
个物品中选,且总体积至多是j
的问题。
慢慢地在提高课中,就有出现状态表示是:从前i
个物品中选,且总体积恰好是j
的问题。例如 AcWing
1023
. 买书 ,求的是恰好是j
的总方案数问题。
同时还出现了状态表示是:从前i
个物品中选,且总体积至少是j
的问题。例如 AcWing
1020
. 潜水员 ,求的是总体积至少是j
的最小价值。
二、求方案数初始化总结
二维情况
-
体积至多
j
【01
+完全】f[0][i] = 1
,0 <= i <= m
,其余是0
示例初始化解释: 用前
0
种物品,在小于i
的空间内,方案数是1
,表示由于啥也不能选择,所以不管是哪个空间,都只能有一种方案,就是啥也不选。 -
体积恰好
j
【01
+完全】f[i][0] = 1
, 其余是0
示例初始化解释: 在前
i
种物品中选择,恰好空间为0
的方案数,只能是啥也不选。
-
体积至少
j
【只01
背包】f[0][0] = 1
, 其余是0
示例初始化解释: 在前
0
种物品中选择,空间至少为0
的方案数,只能是啥也不选
一维情况
三、求最大值最小值初始化总结
二维情况
-
体积至多
j
【01
+完全】f[i,j] = 0
,0 <= i <= n, 0 <= j <= m
( 只会求价值的最大值)示例 -
体积恰好
j
: 当求价值的最小值:f[0][0] = 0
, 其余是INF
示例 当求价值的最大值:f[0][0] = 0
, 其余是-INF
示例 -
体积至少
j
,f[0][0] = 0
,其余是INF
(只会求价值的最小值) 示例
一维情况
- 体积至多
j
,f[i] = 0, 0 <= i <= m
( 只会求价值的最大值) 示例 - 体积恰好
j
: 【01
+完全】
- 体积至少
j
,f[0] = 0
,其余是INF
(只会求价值的最小值) 示例