- 博客(3)
- 收藏
- 关注
原创 多重背包
有n个物品,每个物品体积是costs = {c1,c2,...cn},每个物品的价值是values = {v1,v2,...vn},个数为nums = {m1,m2,...mn}。现在有体积为v的背包,问将这些物品放入该背包,能得到的最大价值是多少?我们可以将该问题转化为01背包求解,那么时间复杂度为O(nvs),s = m1 + m2 + ... + mn。那么,我们可以采用二进制的思想将时
2013-08-30 17:44:12 405
原创 完全背包
有n个物品,每个物品体积是costs = {c1,c2,...cn},每个物品的价值是values = {v1,v2,...vn},每个物品只能取无限次。现在有体积为v的背包,问将这些物品放入该背包,能得到的最大价值是多少?并输出最大时的选择方案。推导:设dp[i][j]为将前i个物品放入体积为j的背包时取得的最大价值。来看,dp[i][j]可由哪些状态得到?1、若第i个物品不放入背包,那
2013-08-29 16:20:45 359
原创 01背包
有n个物品,每个物品体积是costs = {c1,c2,...cn},每个物品的价值是values = {v1,v2,...vn},每个物品只能取一次(所谓01背包,即每个物品只有两种状态:放或不放)。现在有体积为v的背包,问将这些物品放入该背包,能得到的最大价值是多少?并输出最大时的选择方案。推导:设dp[i][j]为将前i个物品放入j的背包能取得的最大值,我们来看dp[i][j]可由哪些值
2013-08-29 12:14:47 603
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人