--- 背包问题 ---综合考虑价格和重量1. 分数背包
2. 0-1背包

1. 分数背包

# (价值, 重量)
goods = [(60, 10), (100, 20), (120, 30)]
goods.sort(key=lambda x: x[0] / x[1], reverse=True)def fractional_backpack(goods, w):"""分数背包"""m = [0 for _ in range(len(goods))]total_v = 0for i, (price, weight) in enumerate(goods):if w >= weight:m[i] = 1total_v += pricew -= weightelse:m[i] = w / weighttotal_v += m[i] * pricew = 0breakreturn f'拿走 {m},总价值: {total_v}'

2. 0-1背包

tr = [None, {'w': 2, 'v': 3}, {'w': 3, 'v': 4}, {'w': 4, 'v': 8}, {'w': 5, 'v': 8}, {'w': 9, 'v': 10}]def backpack_01(tr, max_w):"""0-1背包"""# 初始化背包:前 i 个宝物中,最大价值为 wm = {(i, w): 0 for i in range(len(tr)) for w in range(max_w + 1)}for i in range(1, len(tr)):for w in range(1, max_w + 1):# 装不下第 i 个宝物,就不装if tr[i]['w'] > w:m[(i, w)] = m[(i - 1, w)]else:# 取最大值:不装第 i 个宝物 / 装第 i 个宝物m[(i, w)] = max(m[(i - 1, w)], m[(i - 1, w - tr[i]['w'])] + tr[i]['v'])return m[(len(tr) - 1, max_w)]

3.2_backpack_背包问题相关推荐

  1. ACM1881 01背包问题应用

    01背包问题动态规划应用 acm1881毕业bg 将必须离开的时间限制看作背包容量,先将他们由小到大排序,然后在排完序的数组中对每个实例都从它的时间限制开始(背包容量)到它的延长时间进行遍历: 1 # ...

  2. 算法设计与分析第4章 动态规划(一)【背包问题】

    第3章动态规划(一)[背包问题] 基本思想: 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,但是经分解得到的子问题往往不是互相独立的.不同子问题的数目常常只有多项式量级.在用 ...

  3. c语言-01背包问题

    01背包问题 问题:有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. 分析: 这是最基础的背包问题,特点是:每种物品仅有一件,可以选 ...

  4. 如何在高精度下求解亿级变量背包问题?

    导读:国际顶级会议WWW2020将于4月20日至24日举行.始于1994年的WWW会议,主要讨论有关Web的发展,其相关技术的标准化以及这些技术对社会和文化的影响,每年有大批的学者.研究人员.技术专家 ...

  5. 漫画:阿里巴巴四十大盗的故事-背包问题

    今天,跟大家分享一个我关注了很久的公众号「兔保哥」.这个号是我看着她一点点写起来的,既有财经媒体人的客观严谨,又有身为妈妈的温暖贴心.如果你想用保险的力量守护家庭.为爱人遮风挡雨,可以关注她. --- ...

  6. 背包问题(多重背包+0-1背包)

    一:0-1背包问题 #include<iostream> #include<algorithm> #include<cstring> const int maxn= ...

  7. 三十四、动态规划解决01背包问题

    一.动态规划算法介绍 动态规划算法的核心思想是:将大问题划分为小问题进行解决,从而一步一步获取最优解的处理算法. 动态规划算法与分治算法类似,其基本思想是将待求解的问题分解成若干个子问题,先求子问题, ...

  8. 部分背包的贪婪算法 java_使用JAVA实现算法——贪心算法解决背包问题

    packageBasePart;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException ...

  9. 01背包和完全背包问题

    01背包和完全背包问题 posted on 2019-04-20 17:39 sofu6 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/dusf/ ...

最新文章

  1. Python - 移除List中重复项的五种常用方法
  2. c语言 proteus 延迟2秒_周周练 | 专升本C语言
  3. 工程制图 ( 标准件与常用件)
  4. 一个textView中的文字设置成两种颜色
  5. Python学习笔记整理(三)Python中的动态类型简介
  6. lucene 各个版本介绍
  7. MySQL事务隔离级别及场景测试
  8. FFMPEG列出DirectShow支持的设备
  9. 拓端tecdat|SPSS中的多层(等级)线性模型Multilevel linear models研究整容手术数据
  10. JSON与JAVA的数据转换
  11. 安装破解IAR EWARM 8.2,提供注册机
  12. 【非官方】哈工大2022 形式语言与自动机试题解析
  13. rsync --exclude或者--exclude-from的路径问题
  14. 用计算机发送电子邮件,用英语解释一下发送电子邮件的过程 用计算机语言来说一下,大概400到500个英文单词...
  15. 皇甫懒懒 Java 学习笔记 第一章
  16. Leetcode1859:将句子排序
  17. 服务器显示不兼容这是什么问题,服务器server0处于不兼容的状态,怎么办?
  18. CodeForces961F- k-substrings(哈希)
  19. 香农编码用matlab实验报告,信息论与编码实验指导书
  20. linux db2 删除表空间,DB2表清空数据的四种方法及技巧

热门文章

  1. 写出HTML的基本结构的代码,HTML代码基本结构
  2. 【Docker闪退】【解决方法】It looks like there is an error with Docker Desktop, restart it to fix it
  3. js截取最后一个特定字符后面的字符串
  4. No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Invers
  5. openxml操作word的基本应用
  6. 什么是语音通知 / 语音短信 / 语音外呼?
  7. Editplus激活码2019.5--亲测可用
  8. DSP、SSP、RTB、ADX、DMP(概念通俗解释)
  9. SoftLayer Object Storage 节点
  10. [Luogu4169][Violet]天使玩偶/SJY摆棋子