所谓九讲,也就是:

0/1背包

0/1背包降维

完全背包

多重背包(二进制优化)

混合背包

二维费用背包

分组背包

有依赖的背包

背包的方案总数\背包的具体方案路径

0/1背包:

[问题描述](经典)
有一个吝啬的地主,不愿意给工人付工钱,就从家里的物品中取出N个,对工人说, 你可以从这些物品中任意挑选,只要你的口袋装得下。
现在已知物品的总数量N,和工人的口袋大小M,及每种物品所占的空间wi,物品的价值vi。求出该背包能装载的最大价值。(物品不可以分,不考虑物品间的缝隙)
输入:
2    8
8    6
3    4
5    4
3    3

输出:
16

有人说贪心 不就对了,是啊,当然不对。
贪心:先选单位空间能获得价值更大者
2:8
3:4
3:3
15

正确选择:
2 8
3 4
5 4
16

懂?
当然用深搜的dalao我就不说了,这明显是01背包嘛。
第一步:状态设想

总问题:N个物品,占用M个空间时所能获得的最大价值。

子问题:f[i,j] :前i个物品占用j个空间时能获得的最大价值。(背包惯用定义方式)

第二步:初步规划动规方程

从某个中间状态思考来源

F[i][j]=……….设前面的任何决策都有答案了,当前决策?(来源法)

因为只有选和不选两种方案,所以f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]);(若不选,及前i-1个物品占j个空间的最大价值,f[i-1][j],

                                                                                                          若选,及前i-1个物品占j-w[i]个空间的最大价值,f[i-1][j-w[i]])

第三步:打表  验证、确定动规方程

转载于:https://www.cnblogs.com/mzyczly/p/11174542.html

浅说——九讲背包之01背包相关推荐

  1. 背包九讲系列1——01背包、完全背包、多重背包

    我在进行一些互联网公司的技术笔试的时候,对于我来说最大的难题莫过于最后的那几道编程题了,这对算法和数据结构有一定程度上的要求,而"动态规划"又是编程题中经常出现的算法类型,并且对于 ...

  2. 完全背包与01背包的区别

    写在前面的话: 人被打击得多了,好像对什么都开始麻木了 本文主要是关于完全背包和01背包的对比 完全背包练习题:这里 01背包练习题:这里 我们来考虑一个问题背景,现在你在荒野求生,帐篷已经搭好了,在 ...

  3. HDU2191 多重背包或者01背包 xingxing在努力

    珍惜现在, 感恩生活,记得汶川大地震那年我还在6年级, 当时以为是后面的同学在摇我的凳子, 几分钟后班里机智的同学才说地震了,大家赶快往楼下跑.这道题才让我真正理解了背包九讲前面讲解的东西, 题意就不 ...

  4. 【qduoj - 142】 多重背包(0-1背包的另类处理,dp)

    题干: ycb的ACM进阶之路 Description ycb是个天资聪颖的孩子,他的梦想是成为世界上最伟大的ACMer.为此,他想拜附近最有威望的dalao为师.dalao为了判断他的资质,给他出了 ...

  5. 2017百度之星程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】...

    度度熊保护村庄 Accepts: 13 Submissions: 488 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3276 ...

  6. 1919: kirito's 星爆气流斩(多重背包转换为01背包+二进制优化)

    Description 主角kirito是使用世界首款完全潜行游戏"刀剑神域(Sword Art Online)"的玩家.曾经很幸运的参与过封闭测试,并买下正式版的kirito,正 ...

  7. zcmu 1919 kirito's 星爆气流斩(多重背包转01背包,并且进行2进制优化)

    思路:明显的背包问题,并且是多重背包,多重背包有两种思路 思路1:当成一种新情况考虑,因为有个数的限制所以跟完全背包不一样的地方在于状态转移方程应该是dp[i]=max{dp[i],dp[i-k*w[ ...

  8. java多重背包算法,01背包、完全背包和多重背包

    最优化原理 指的最优策略具有这样的性质:不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略. 如何证明一个最优策略的子策略也是最优解,一般使用反证法来证明. 无后效性 ...

  9. HDOJ--2191--悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包变01背包)

    悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

最新文章

  1. 机器学习(数据挖掘十个重要算法)
  2. C++读取文件夹中所有文件的路径,包含子文件夹
  3. 莫比乌斯反演 做题记录
  4. Html控件和Web控件(转)
  5. Scala学习笔记01:Scala概述、安装配置、简单使用
  6. java class object_[java]Class类和Object类的关系
  7. python学习笔记(二)之列表
  8. 微信公众平台消息接口开发(27)彩票查询
  9. mongodb获取数组中只符合条件的元素
  10. 通信中的“交织”技术
  11. 【Java】URL下载网络资源(CloudMusic)
  12. 鹰信车载桌面,通过车机可以拨号,统一管理车载电话应用
  13. 计算机图形学大会和学术刊物编辑
  14. 正态分布(用python画出相应的图)
  15. 前缀、真前缀、后缀、真后缀
  16. 压缩算法gorilla paper encoding原理
  17. infoGAN公式推导(信息最大化生成对抗网络(理论部分))
  18. Access转出到Mysql,咱自己动手丰衣足食.. -- 纯JS代码
  19. [附源码]计算机毕业设计Python作业查重系统(程序+源码+LW文档)
  20. linux查看日志的多种方法集合

热门文章

  1. 百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题
  2. msvcrt.lib和LIBCD.lib链接冲突
  3. android json转db,Android Room:将json结果转换为db对象的有效方法
  4. 对口高考选的计算机应用好吗,对口高考专业有哪些比较好
  5. 开发log4j配置_Spring 使用 Log4J 记录日志
  6. python获取天气分析_Python爬取南京市往年天气预报,使用pyecharts进行分析
  7. 实验报告C语言实现图的深度遍历,图的深度优先遍历的C语言实现.pdf
  8. mysql clob blob,如何在MySQL中插入BLOB和CLOB文件?
  9. excel python开发_Excel + Python = 威力无比
  10. 鸿蒙系统3.0演示,华为鸿蒙系统3.0-华为鸿蒙系统3.0官网申请地址预约 v1.0-优盘手机站...