当前位置: 首页 > news >正文

MIT-0-1背包问题

文章目录

  • 问题描述
  • 例子
  • 算法实现

问题描述

NNN 件物品和一个容量是 VVV 的背包。每件物品只能使用一次。第 iii 件物品的体积是 wiw_iwi,价值是 viv_ivi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。

例子

在这里插入图片描述

算法实现

动态规划是不断决策求最优解的过程,0-1 背包即是不断对第 iii 个物品的做出决策,0-1代表不选与选两种决定。请添加图片描述

  1. 初始化:dp[0][i]=dp[i][0]=0dp[0][i]=dp[i][0]=0dp[0][i]=dp[i][0]=0
  2. 当前背包容量不够 j<w[i]j<w[i]j<w[i],没得选,dp[i][j]=dp[i−1][j]dp[i][j]=dp[i-1][j]dp[i][j]=dp[i1][j]
  3. 当前背包容量够 j≥w[i]j\geq w[i]jw[i]
  • 选:dp[i][j]=dp[i−1][j−w[i]]+v[i]dp[i][j]=dp[i-1][j-w[i]]+v[i]dp[i][j]=dp[i1][jw[i]]+v[i]:前 i−1i-1i1 个物品,背包容量为 jjj 下,空出第 iii 个元素所需要的空间的最优解,然后再加上第 iii个物品的价值,即是前 iii 个物品,背包容量为 jjj 下的最优解。
  • 不选:dp[i][j]=dp[i−1][j]dp[i][j]=dp[i-1][j]dp[i][j]=dp[i1][j]
int dp[n][m];
int w[n], v[n];/* 初始化 */
for (int i = 0; i <= m; i ++ ) dp[0][i] = 0;for (int i = 0; i <= n; i ++ ) dp[i][0] = 0;/* 动态规划 */
for (int i = 1; i <= n; i ++ )
{for (int j = 1; j <= m; j ++ ){if (j < w[i]) // 当前背包容量不够,没得选,dp[i][j]=dp[i-1][j]dp[i][j] = dp[i - 1][j];else // 当前背包容量够dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i]] + v[i])}
}return dp[n][m];

时间复杂度:O(nm)O(nm)O(nm)

http://www.dtcms.com/a/574441.html

相关文章:

  • AI+近红外:实现粮食质量快速检测的智能化升级——从单指标到多指标同步预测的技术飞跃
  • 注册电气工程师报考条件网站优化 套站
  • 兰州大学网页与网站设计最好玩的网站
  • wap建站系统创意设计工作室
  • MCU单片机驱动WS2812,点亮RGB灯带各种效果
  • 公司的服务器能建设网站吗网站如何做移动适配
  • 嘉兴做网站优化多少钱网站搜索引擎友好性
  • 正规网站建设公司哪家好wordpress js被挂木马
  • 贵州省建设厅网站查合肥网站排名优化公司
  • 什么是接口测试?为什么要做接口测试?
  • 淘宝网站制作教程北京网站建设东轩seo
  • 无锡公司建立网站佛山企业用seo策略
  • 24.系统日志查看方法与实战
  • WordPress软件连接不了网站宁波建设监理协会网站
  • 网站网络安全怎么做如何提高网站百度权重
  • Openmetadata数据质量管理-新增自定义测试类型
  • 49-基于ZigBee的室内甲醛监测系统设计与实现
  • 一文读懂稳态太阳光模拟器
  • 云南建站推广南通网站seo服务
  • 网站配色绿色微商商城系统开发
  • 仓颉编程语言基础集合类型详解:HashSet深度解析
  • 无代码网站开发网页怎么生成长图
  • 户县网站建设福建省网站建设绩效排名
  • 基于MQTT和Sparkplug B的UNS系统的元数据管理
  • Origin将Y偏移图升级为3D瀑布图
  • 职业学院网站建设方案做网站怎么搭建环境
  • 网站副标题wordpresswordpress做个米表
  • 开淘宝店怎么做充值网站杭州巴顿品牌设计
  • 北京市城乡建设协会官方网站开发网站如何选需要
  • VASP 教程:使用 VASP 进行机器学习力场训练