背包总结

作者: Claire_cc | 来源:发表于2018-12-06 23:03 被阅读17次

1. 01背包

问题描述:有n件物品,每件物品的重量为w[i],价值为c[i],现有容量为V的背包,如何放入使背包的总价值最大。
解:dp[i][v]表示第i件物品恰好放入容量为v的背包中所能获得的最大值
dp[i][v]=max{dp[i-1][v],dp[i-1][v-w[i]]+c[i]}(1<=i<=n,w[i]<=v<=V)
边界dp[0][v]=0
实现:因为dp[i][v]只和dp[i-1][v]的状态有关,所以可以用1*V的数组表示每一轮的dp值,i从1到n,v从V到w[i]
剪枝优化:dp[V]=V的时候退出

for(int i=1;i<=n;i++)
  for(int v=V;v>=w[I];v--)
      dp[v]=max(dp[v],dp[v-w[i]]+c[i]);
例题:洛谷P2639

2.完全背包
问题描述:每个物品都有无限件

for(int i=1;i<=n;i++)
  for(int v=w[I];v<=V;v--)
      dp[v]=max(dp[v],dp[v-w[i]]+c[i]);

3.多重背包
问题描述:每种物品都有有限个数量
:可以看成是多个有着相同价值和重量的物品,转化成01背包

相关文章

  • 背包总结

    1. 01背包 问题描述:有n件物品,每件物品的重量为w[i],价值为c[i],现有容量为V的背包,如何放入使背包...

  • 背包问题总结

    0-1背包 有N件物品和⼀个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value...

  • 背包问题总结 (Backpack Problem)

    本文主要总结Lintcode的Backpack Problem I - VI. Backpack的解题思路是建立二...

  • 简易背包系统17、计划扩展与总结

    总结 支持,整个背包系统的功能都已经实现,但仍然是一个很捡漏的背包系统。 计划 1、人物装备面板上文字动态显示,即...

  • 背包问题

    前言: 总结模板 0X00 模板总结 首先背包问题对于「状态」有一个通用的表示方法: dp[i][j] 代表使用前...

  • 从斐波那契到01背包 - 我理解的DP

    从斐波那契到01背包 - 我理解的DP 01背包问题是动态规划的经典入门题目,为了更好的总结与检验,我决定写一篇博...

  • 算法模板(一) 01背包,多重背包,完全背包

    01背包 多重背包 完全背包

  • 读书

    《背包十年》是职业旅行家小鹏背包旅行10年的心血总结,他一直执着行走在追梦路上,在途中,他欣赏不同地域的风土人情、...

  • 背包入门

    背包,是动态规划里一类典型的问题,主要有:01背包,完全背包,多重背包,混合背包,二维费用背包,分组背包,有依赖背...

  • java算法巩固训练day01

    01背包 完全背包 多重背包 多重背包二进制优化算法

网友评论

    本文标题:背包总结

    本文链接:https://www.haomeiwen.com/subject/zkoiqqtx.html