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

代码随想录 -- 动态规划 -- 01背包理论基础(滚动数组)

46. 携带研究材料(第六期模拟笔试)

思路:

  • dp[j]含义:容量为j的背包的最大价值。

递推公式:

  • 如果放不下第i个物品:dp[j]=dp[j];
  • 如果能放得下第i个物品:dp[j]=max(dp[j],dp[j-weight[i]]+value[i])

初始化:

  • 全部初始化为0

遍历顺序

  • 先遍历物品,再遍历背包;(如果先遍历背包再遍历物品,背包里只有一个物品了)
  • 遍历物品时:从前往后;
  • 遍历背包时:从后往前。(保证每个物品只使用一次)
count,bWeight=map(int,input().split())
weight=list(map(int,input().split()))
value=list(map(int,input().split()))
dp=[0]*(bWeight+1)
for i in range(count):for j in range(bWeight,-1,-1):if j-weight[i]>=0 and j-weight[i]<bWeight:dp[j]=max(dp[j],dp[j-weight[i]]+value[i])
print(dp[bWeight])


http://www.mrgr.cn/news/64013.html

相关文章:

  • 虚拟现实与增强现实:重塑娱乐和教育的边界!
  • 代码优雅的规范
  • vue3学习记录-nextTick
  • 【Spark中创建RDD的两种方式】Spark中如何获取sc对象、以及创建RDD的两种方式
  • 云计算的优势及未来发展趋势
  • 手敲Webpack 5:React + TypeScript项目脚手架搭建实践
  • 从0开始学统计-什么是中心极限定理
  • 秒杀优化(异步秒杀,基于redis-stream实现消息队列)
  • 使用列表推导式处理列表中符合条件的元素将结果组成新的列表
  • Iceoryx2:高性能进程间通信框架(中间件)
  • Redis到底支不支持事务?半事务
  • 《业务三板斧:定目标、抓过程、拿结果》读书笔记5
  • 基于Spring Boot的信息学科平台系统开发指南
  • 知识蒸馏概念(Knowledge Distillation)的学习
  • Git下载-连接码云-保姆级教学(连接Gitee失败的解决)
  • 在线QP(QuotedPrintable)编码解码工具
  • 从需求到实践:中国少儿编程教育的崛起与家长教育理念的变迁
  • 4款学术型AI神器,文献管理、论文投稿写作!
  • 300元左右的性价比头戴式耳机怎么选?盘点四款性价比爆表机型推荐
  • 【MySQL】 运维篇—故障排除与性能调优:案例分析与故障排除练习
  • SpringBoot中使用多线程ThreadPoolTaskExecutor+CompletableFuture
  • RHCE第五天笔记
  • 【论文源码实战】EdgeYOLO: 边缘设备友好的无锚框检测器
  • Linux高阶——1027—守护进程
  • LeetCode207. 课程表(2024秋季每日一题 55)
  • Mybatis-plus入门教程