My背包九讲——概述
文章目录
什么是背包问题

百度百科:背包问题(Knapsackproblem)是一种组合优化的NP完全问题。正确代码 问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。注意事项问题的名称来源于如何选择最合适的物品放置于给定背包中。 ,也可以将背包问题描述为决定性问题,即在总重量不超过W的前提下,总价值是否能达到V?
别人的理解:背包问题指这样一类问题,题意往往可以抽象成:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。
我的理解:首先我们应该明白背包问题是是动态规划的一个种重要的铺垫(也可以理解为是动态规划问题的一个重要的分支),所以它一定拥有动态规划的性质,背包问题是一些动态规划问题的
经过抽象后的结合实际问题的产物,(听大佬的理解)背包问题,其实是一个很暴力的问题,它就像二进制枚举,把每一种情况都枚举出来(这里被枚举的情况指的是:在当前情况、条件下看来一定是最优解),根据之前的枚举的所有情况 、根据题意(比如让找最大、小值),找出最优解,还有就是 背包问题处处最优(当前的最优一定是根据之前的最优推出来.......经过许多次递推之后 最终答案的最优解 也可 根据之前的最优解推出来)的思想注意事项 。
动态规划(DP):动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法,动态规划程序设计往往是针对一种最优化问题(百科),读完百科给的定义基本上没啥用(说的太高深了),我以一个初学者的角度说来我对动态规划的一个简单理解,从动态规划中“动态”二字我们可以看出,它在解决问题的时候一定 是根据不同的情况(根据题目的不同条件)作出当前情况下最优的决策、最优选择(我感觉这就像,动态规划的程序是智能的、聪明的,能够自己对各种条件应,做一个最优选择)正确代码
背包问题的分类
目录
第一讲 01背包问题
这是最基本的背包问题,但又是其它背包问题的对重要基础,每个物品最多只能放一次。
第二讲 完全背包问题
第二个基本的背包问题模型,每种物品可以放无限多次。
第三讲 多重背包问题
每种物品有一个固定的次数上限。
第四讲 混合三种背包问题
将前面三种简单的问题叠加成较复杂的问题。
第五讲 二维费用的背包问题
一个简单的常见扩展。
第六讲 分组的背包问题
一种题目类型,也是一个有用的模型。后两节的基础。
第七讲 有依赖的背包问题
另一种给物品的选取加上限制的方法。
第八讲 泛化物品
我自己关于背包问题的思考成果,有一点抽象。
第九讲 背包问题问法的变化
试图触类旁通、举一反三。
附:大佬的背包九讲
————————————————
My背包九讲——概述的更多相关文章
- 【DP_背包专题】 背包九讲
这段时间看了<背包九讲>,在HUST VJUDGE上找到了一个题单,挑选了其中16道题集中做了下,选题全部是HDU上的题,大多是简单题.目前做了点小总结,大概提了下每道题的思路重点部分,希 ...
- 背包九讲PDF
本资料仅限个人学习交流使用,不得用于商业用途. 背包九讲PDF:https://pan.baidu.com/s/17rTxMwCo9iSTOW77yucdXQ 提取码:xbqa
- 背包九讲 && 题目
★.背包求方案数的时候,多重背包是不行的,因为产生重复的背包会有多种情况. ★.背包记录路径的时候,其实是不行的,因为更新了12的最优解,如果它依赖于6这个背包,然后你后面改变了6这个背包,就GG 1 ...
- dd大牛的《背包九讲》
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 基本思路 这是最 ...
- 直接抱过来dd大牛的《背包九讲》来做笔记
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 基本思路 这是最 ...
- 摘自 dd大牛的《背包九讲》
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 基本思路 这是最 ...
- 背包九讲(Orz)
P01: 01背包问题 题目 有\(N\)件物品和一个容量为\(V\)的背包.第\(i\)件物品的费用是\(c[i]\),价值是\(w[i]\).求解将哪些物品装入背包可使这些物品的费用总和不超过背包 ...
- dd 在度娘上看到的一个大牛的《背包九讲》 (:
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 基本思路 这是最 ...
- [转]dd大牛的《背包九讲》
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 基本思路 这是最 ...
随机推荐
- 今夜我懂了Lambda表达式_解析
现在时间午夜十一点~ 此刻的我血脉喷张,异常兴奋:因为专注得学习了一把java,在深入集合的过程中发现好多套路配合Lambda表达式真的是搜椅子,so开了个分支,决定从"只认得", ...
- 快速上手 Python 命令行模块 Click
关于Click? 说下 Click 模块是干啥的,简单说,它就是把我们的 Python 脚本的一些函数,通过 添加带有 Click 关键字的装饰器进行装饰进而将函数调用的形式转化为命令行传参的形式然后 ...
- 一文深入了解史上最强的Java堆内缓存框架Caffeine
它提供了一个近乎最佳的命中率.从性能上秒杀其他一堆进程内缓存框架,Spring5更是为了它放弃了使用多年的GuavaCache 缓存,在我们的日常开发中用的非常多,是我们应对各种性能问题支持高并发的一 ...
- 【Spring Data 系列学习】Spring Data JPA @Query 注解查询
[Spring Data 系列学习]Spring Data JPA @Query 注解查询 前面的章节讲述了 Spring Data Jpa 通过声明式对数据库进行操作,上手速度快简单易操作.但同时 ...
- 解决vue在控制台的 NavigationDuplicated 报错
解决问题: 点击相同的链接,会有一个重复key的报错 const originalPush = Router.prototype.push Router.prototype.push = functi ...
- vue中的$props、$attrs和$listeners研究 [包装iview组件]
$props:当前组件接收到的 props 对象.Vue 实例代理了对其 props 对象属性的访问. $attrs:包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 ...
- 在d盘创建文件夹,里面有aaa.txt/bbb.txt/ccc.txt,然后遍历出aaa文件夹下的文件(新手)
//导入的包.import java.io.File;import java.io.IOException;//创建的一个类.public class zy { //公共静态的主方法. public ...
- Linux服务器(Centos)上安装jexus
哈子是Jexus Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关,Jexus Web Service,简称JWS,以支持ASP.NET.ASP.NET CORE.PHP为特色, 同 ...
- Jenkins分布式构建与并行构建
Jenkins分布式构建与并行构建 jenkins的架构 Jenkins采用的是"master+agent(slave)"架构.Jenkins master负责提供界面.处理HTT ...
- WEB应用之httpd基础入门(二)
前文我们聊了下httpd的一些基础设置,聊了下httpd的配置文件格式,长连接.mpm的配置以及访问控制基于文件路径和URL管控,回顾请参考https://www.cnblogs.com/qiuhom ...