01背包与最小邮票数
最小邮票数,这是一道典型的01背包变形问题
01背包
输入描述
有多组输入数据
输入背包大小m,物品件数n
接下来n行依次输入,第i件物品的重量和价值
输入样例
90 4
20 25
30 20
40 50
10 18
40 2
25 30
10 8
输出描述
输出能放入背包的最大价值
输出
95
38
典型的01背包状态转移方程如下
dp[i][j]表示前i个物品装进容量为j的背包能获得的最大价值
dp[i][j] = max{dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i] | j >= weight[i]}
dp[i][0] = 0 (0 <= i <= n)
dp[0][j] = 0 (0 <= j <= m)
板子如下

本文介绍了01背包问题和最小邮票数问题,这两个问题都是动态规划的经典应用。01背包问题中,通过状态转移方程找到能放入背包的最大价值。而对于最小邮票数问题,同样使用动态规划,但目标是最少邮票张数。文章详细解释了状态转移方程的构造,并给出了初始化dp数组的方法。
2075

被折叠的 条评论
为什么被折叠?



