0-1背包
来源:互联网 发布:霸屏软件 编辑:程序博客网 时间:2024/05/19 18:17
问题描述:
给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包容量为c。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大。在选择装入背包的物品时,对每种物品i只有两种选择,即装入背包或不装入背包。不能将物品i装入背包多次,也不能只装入部分的物品i。因此,该问题称为0-1背包问题。
DP思想:
首先物品个数为n个, 包总容量为c, 其中w[],v[]分别为n个物品的重量、价格。表m(i,j)表示从第i个物品开始容量为j的包的最大价值量。具体流程如下: 1. 初始化,当i=n-1时,若c>=w[i],则m(i,c)=v[i];若0<=j<w[i],则m(i,c)=0
2. 当0<=i<n-1时,若j>=w[i],则m(i,j)=max{ m(i+1,j), m(i+1,j-w[i])+v[i] };若0<=j<w[i],则m(i,j)=m(i+1,j)
C++源码:
运行结果:
- 背包问题(0-1背包、完全背包、多重背包)详解
- 0-1背包----完全背包
- 0-1背包+分数背包
- 背包问题之0/1背包,完全背包,多重背包,混合背包
- 【背包问题】背包问题之0-1背包、完全背包、多重背包
- 0/1背包,完全背包,多重背包方程
- 0-1背包、部分背包和完全背包模板
- 背包问题(0/1背包,完全背包)
- 背包笔记-含0/1背包问题、完全背包问题、多重背包问题、二维背包问题、分组背包问题
- 0/1背包与完全背包
- 背包问题之0-1背包(一)
- 背包问题之0-1背包(二)
- 背包问题之0-1背包(三)
- 背包问题和0-1背包问题
- 背包问题start...:0-1背包
- 多重背包转换成0-1背包
- 贪心背包和0-1背包问题
- 0-1背包和部分背包问题
- 以下我写的VBA代码执行到红色的那句就出现错误提示,无法运行,请求您的帮助
- 以下我写的VBA代码执行到红色的那句就出现错误提示,无法运行,请求您的帮助
- C++基本类型的取值范围
- 学好python的资料汇总
- Develop Linux Keyboard Driver
- 0-1背包
- 福布斯荐75本经商必读
- JasperReport 类介绍
- oralce flashback 使用方法总结
- 7.2.3. Boxes
- 基本排序查找(模版)
- 笨笨数据压缩教程--序
- 关于嵌入式linux下开发cgi程序应该注意的问题
- 在控制台程序中隐藏控制台窗口