原贴
一、学习过程总结
一开始学背包问题时遇到的大多数的状态表示是:从前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, f[i]=1, 0<=i<=m 示例
- 体积恰好j, f[0]=1, 其余是0 示例
- 体积至少j, f[0]=1, 其余是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+完全】
- 当求价值的最小值:f[0]=0, 其余是INF 示例
- 当求价值的最大值:f[0]=0, 其余是−INF 示例
- 体积至少j,f[0]=0,其余是INF(只会求价值的最小值) 示例
Markmap
Markmap
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2019-01-26 用SQL语句查询zabbix的监控数据
2018-01-26 Python 读写xlsx