当前位置: 首页 > 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

相关文章:

  • 域名注册通过网站建设拓展国际市场
  • 云打印之菜鸟打印组件交互协议
  • 【面试】后端开发面试中常见数据结构及应用场景、原理总结
  • Android14 CTS-R6和GTS-12-R2不能同时测试的解决方法
  • 《Vue3实战教程》19:Vue3组件 v-model
  • windows 图形基础架构简介
  • 从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入门教程