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].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 基本思路 这是最 ...
随机推荐
- Excel之在单元格中生成随机密码
公式 =CHAR(INT(RAND()*26+97))&INT(RAND()*10)&CHAR(INT(RAND()*26+97))&INT(RAND()*10) 分析 CHA ...
- Linux定制化RPM包
定制化RPM包 1.Linux安装软件方法 1- rpm/yum安装 简单.速度快,但是不能定制安装 RPM RedHat Package Manager(RPM软件包管理器) 2- 二进制安装 解压 ...
- aireplay包注入攻击
reaver爆破WPS PIN码: airodump-ng wlan0 reaver -i wlan0 -b D0:76:E7:51:2A:78 -vv macchanger更改MAC地址: ma ...
- git重新学习
一个学习网址:https://learngitbranching.js.org/ 一.对于一个新的远程空仓库 本地新建文件后推送 #初始化 git init #添加文件 git add README. ...
- 数据挖掘入门系列教程(五)之Apriori算法Python实现
数据挖掘入门系列教程(五)之Apriori算法Python实现 加载数据集 获得训练集 频繁项的生成 生成规则 获得support 获得confidence 获得Lift 进行验证 总结 参考 数据挖 ...
- Flask wtforms 表单验证使用
目录 wtforms 使用1(简单版): 使用2(复杂版): wtforms 安装:pip3 install wtforms 使用1(简单版): from flask import Flask, re ...
- vmware导入ova文件踩坑记
问题来源 众所周知,所有的网络行为都会产生相应的网络流量,那么所有的网络攻击行为也有其对应的流量特点,那么是否能根据流量特点进而分析出其对应的是什么攻击行为呢? 我在虚拟机上使用vulnhub的靶场环 ...
- echar图柱状图和折线图混合加双侧y轴坐
代码如下: floorSalesBar(){//方法名====这个方法应该放在methods中并在mounted中调用哦 methods let _this = this; let myChart = ...
- jwt(JSON Web Tokens)的一道题目代码分析
题目链接https://github.com/wonderkun/CTF_web/tree/5b08d23ba4086992cbb9f3f4da89a6bb1346b305/web300-6 参考链接 ...
- VLAN间的通信
多臂路由/单臂路由 :实现不同VLAN间的通信 1.多臂路由 划分两个vlan,将主机划分到不同vlan中 配置ip地址,(注意:不同vlan在不同的网络下) 将交换机的两个端口分别与路由器连接,将这 ...