若只考虑第i件物品的策略(放或不放),那么就可以转化为一个只牵扯前i-1件物品的问题:

  • 如果不放第i件物品,则转化为“前i-1件物品放入容量为v的背包中”,价值为f[i-1][v];
  • 如果放第i件物品,则转化为“前i-1件物品放入剩下的容量为v-w[i]的背包中”,最大价值就是f[i-1][v-w[i]]+c[i]。
f[i][v]=max(f[i-1][v],f[i-1][v-w[i]+c[i]]);//二维for(v=V;v>0;v--)//一维
f[v]=max(f[v],f[v-w[i]+c[i]]);
  • 若要求恰好装满背包,初始化时除了f[0]为0其它f[1..V]均设为-∞
  • 若没有要求必须把背包装满,初始化时将f[0..V]全部设为0

完全背包问题

f[i][v]=max(f[i][v-w[i]+c[i]],f[i-1][v]);for(v=1;v<=V;v++)
f[v]=max(f[v],f[v-w[i]]+c[i]);//f[v]不超过v公斤的最大价值

考虑f[i][v]时,由于是从前往后写,一维数组表示的f[v]还没被写入,它表示的是f[i-1][v],而f[v-w[i]]已经被写入,它表示的是f[i][v-w[i]]

一维的f[v]=max{f[v],f[v-w[i]]+c[i]}
表示的恰好是二维:f[i][v]=max{f[i-1][v],f[i][v-w[i]]+c[i]}

背包问题状态转移方程相关推荐

  1. 完全背包问题状态转移方程解释

    这几天一直在看背包问题,看了很久才看懂完全背包问题O(VN)的算法的原理,在此记录,防止以后忘记 这是我在看了背包九讲后总结的一种思路 完全背包问题有基本思路和改进后的O(VN)算法,这两个的状态转移 ...

  2. Java解洛谷P6771 [USACO05MAR]Space Elevator 太空电梯,包含完整的多重背包状态转移方程,大量注释,通俗易懂

    01.题目及链接 题目链接:https://www.luogu.com.cn/problem/P6771 02.多重背包状态转移方程说明 了解多重背包 有 N 种物品和一个容量是 V 的背包,每种物品 ...

  3. c++ 多重背包状态转移方程_背包问题之零钱兑换

    读完本文,你可以去力扣拿下如下题目: 518.零钱兑换II ----------- 零钱兑换 2 是另一种典型背包问题的变体,我们前文已经讲了 经典动态规划:0-1 背包问题 和 背包问题变体:相等子 ...

  4. c++ 多重背包状态转移方程_动态规划入门——详解经典问题零一背包

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是周三算法与数据结构专题的第12篇文章,动态规划之零一背包问题. 在之前的文章当中,我们一起探讨了二分.贪心.排序和搜索算法,今天我们来 ...

  5. c++ 多重背包状态转移方程_Python|动态规划关于0-1背包问题

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云,作者:算法与编程之美 前言 对学算法的同学来说,动态规划是其 ...

  6. 洛谷 P1164 小A点菜(01背包状态转移方程详细推导)

    题目链接 今天刷题,本来背包问题感觉稳稳的懒得刷了,随手做两个就被卡住了, 原来自己只会做死板的背包,这种稍微变形的就不会推状态转移方程了 我又去看了一眼滚动背包的转变方法 加上大佬的题解,才稍微明白 ...

  7. c++ 多重背包状态转移方程_【模板】各种背包问题amp;讲解

    [模板]各种背包问题&讲解  背包问题集合 一般来说,动态规划(DP)都是初学者最难闯过的一关,而在这里详细解说动态规划的一种经典题型:背包问题. 这里介绍的背包分为以下几种:01背包,完全背 ...

  8. c++ 多重背包状态转移方程_串讲:控制理论:全状态反馈控制(FSFB)

    全状态反馈控制也可以被称作状态反馈控制,它是现代控制理论的一种控制方法,私信中部分小伙伴问道极点配置还有状态反馈是怎么回事,这里就写一篇文章来解决上述问题.介绍全状态反馈控制(FSFB)之前,根据自己 ...

  9. c++ 多重背包状态转移方程_【考前再叮嘱】陌生方程式书写

    点击上方蓝字  关注"爱学化学"今日分享                                  陌生方程式书写 作者|何佳欢 它来了,它真的来了,万众瞩目的期中考试正在 ...

最新文章

  1. 064文件方式实现完整的英文词频统计实例
  2. IC基础知识(4)电源管理简介:稳压器IC
  3. 通过forms来创建用户注册
  4. 自己写的一个BMP转PNG工具BMP2PNGen
  5. 【数字信号处理】周期序列 ( 周期序列表示方法 | 主值区间表示法 | 模 N 表示法 )
  6. 2019年春季学期第二周作业
  7. 全国计算机一级d类考试内容,全国计算机一级考试WPS office复习题及答案2017
  8. rabbitMQ教程 一篇文章看懂rabbitMQ
  9. 8 使用SubMenu创建子菜单
  10. 常见SQL Server 2000漏洞及其相关利用2
  11. poj 1088 滑雪
  12. 【教程】PDF控件Spire.PDF 教程:在C#中加密和解密PDF文件
  13. 光环PMP 三模模拟题
  14. SSM实现增删改查(IDEA)
  15. SOUI中View类型的控件数据更新的例子
  16. 正态分布某一点的概率怎么算_标准正态分布+标准正态分布概率表+分布函数+积分...
  17. 武汉大学计算机学院易碧波,王峰(武汉大学计算机学院副教授)_百度百科
  18. 【Java8】Function 讲解
  19. 滚轮控制摄像机移动_缩放视角_限制上下限
  20. php批量上传代码,文件批量上传_php文件上传代码(支持文件批量上传)

热门文章

  1. Educoder - Java入门 - 方法的使用各关卡题目总结
  2. 中国AI研究超美国?专家:比如深度学习已发文章数
  3. 海量数据“一键筛选”,比Excel还好用的筛选功能,更便捷了
  4. 程序员的职业素养 读书笔记 - 第6章 练习
  5. iOS 多线程安全数组
  6. 从经典到深度学习的数据补全
  7. 游戏制作大致流程粗谈之四
  8. 82岁“极客”老人借阿里云写族谱:想去云栖大会看马云!
  9. 全群禁言群检测删除投票广告的方法
  10. Template 基础篇-函数模板