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

算法笔记:0-1背包问题

 

n个商品组成集合O,每个商品有两个属性vi(体积)和pi(价格),背包容量为C。

求解一个商品子集S,令

优化目标 max\sum_{i \in S} p_i

\sum_{i \in S} v_i \leq C

1. 枚举所有商品组合

共2^n - 1种情况

2. 递归求解

KnapsackSR(h, i, c):在第h个到第i个商品中,容量为c时的最优解

P1:选择商品i

P2:不选择商品i

取二者最大值P = max{P1+pi, P2}

3. 带备忘递归

4.  动态规划

 

 时间复杂度 O(n*C)

 

最优子结构性质:

(1)问题的最优解由相关子问题最优解组合而成

(2)子问题可以独立求解

http://www.lryc.cn/news/183921.html

相关文章:

  • C++入门-day02
  • 模板方法模式,基于继承实现的简单的设计模式(设计模式与开发实践 P11)
  • php实战案例记录(16)php://input输入流
  • cad图纸如何防止盗图(一个的制造设计型企业如何保护设计图纸文件)
  • Windows11 安全中心页面不可用问题(无法打开病毒和威胁防护)解决方案汇总(图文介绍版)
  • 1329: 【C2】【排序】奖学金
  • 解决dockerfile创建镜像时pip install报错的bug
  • 算法题:分发饼干
  • WebSocket编程golang
  • PHP之redis 和 memache面试题
  • java socket实现代理Android App
  • Nacos与Eureka的区别
  • 浅谈Rob Pike的五条编程规范
  • LeetCode 377.组合总和IV 可解决一步爬m个台阶到n阶楼顶问题( 完全背包 + 排列数)
  • C中volatile总结
  • asp.net班级管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • 【Pytorch笔记】6.Transforms
  • nodejs+vue临沂特色产品销售平台elementui
  • 机器学习必修课 - 使用管道 Pipeline
  • WEB各类常用测试工具
  • Naive UI 文档地址
  • 在CentOS7系统中安装MySQL5.7
  • R语言通过接口获取网上数据平台的免费数据
  • 【Docker内容大集合】Docker从认识到实践再到底层原理大汇总
  • 算法题:摆动序列
  • 复习 --- QT服务器客户端
  • Godot 官方2D游戏笔记(1):导入动画资源和添加节点
  • leetcode 热题 100
  • Ae 效果:CC Lens
  • 【Redis】基础数据结构-quicklist