背包问题个人小结
背包问题
基本背包问题
问题描述
有n件物品(序号为i),每件体积为v[i], 物品价值c[i],现有一个容积为m的背包
问这个背包能塞下的最大价值是多少
问题分析
这个问题是比较经典的动态规划问题,当n值较大时,穷举每件物品放不放入背包的情况是非常多的
构造方程f[i][j]表示前i个物品+容器为j的背包能装下的最大价值
由此构建转移方程
f[i][j] = max(f[i-1][j], c[i] + f[i-1][j-[v[i]]])
理解这个方程:
假设我们已知f[x][y]的所有值时(x<i
原创
2021-03-13 00:32:45 ·
220 阅读 ·
0 评论