首页 > 其他分享 >代码随想录 -- 动态规划 -- 01背包理论基础

代码随想录 -- 动态规划 -- 01背包理论基础

时间:2024-10-30 20:17:54浏览次数:8  
标签:背包 weight -- 随想录 value range 01 物品 dp

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

思路:

dp[i][j]含义:

  • 在(0,i)之间任意选取物品放入容量为j的背包中,使背包的价值最大。

递推公式:

  • 当前背包容纳不下第i个物品,不选第i个物品,此时背包的价值:dp[i][j]=dp[i-1][j]。
  • 当前背包容纳得下第i个物品时,且选择第i个物品,此时背包的价值:dp[i][j]=dp[i-1][j-weight[i]]+value[i];但此时dp[i][j]要取容纳价值的最大值,所以dp[i][j]=max(dp[i][j]=dp[i-1][j-weight[i]]+value[i],dp[i][j]=dp[i-1][j])

初始化:

  • 从递推公式可以看出,当前元素是由其上方和左方的元素推出来的,所以要初始化第一行和第一列。
  • 第一行表示背包中只放物品0,所以当 j<weight 时,dp[0][j]=0;当 j>=weight 时,dp[0][j]=weight[0]。
  • 第一列表示背包容量为0,所以dp[i][0]=0。

遍历顺序:

  • 从递推公式中可以看出,先遍历背包还是先遍历物品都一样。
m,n=map(int,input().split())
weight=list(map(int,input().split()))
value=list(map(int,input().split()))
dp=[[0]*(n+1) for _ in range(m)]
for j in range(n+1):
    if j>=weight[0]:
        dp[0][j]=value[0]
for i in range(1,m):
    for j in range(n+1):
        if weight[i]>j:
            dp[i][j]=dp[i-1][j]
        else:
            dp[i][j]=max(dp[i-1][j-weight[i]]+value[i],dp[i-1][j])
print(dp[m-1][n])

注意:

python的输入函数

标签:背包,weight,--,随想录,value,range,01,物品,dp
From: https://blog.csdn.net/weixin_56989647/article/details/143367972

相关文章

  • 鸿蒙生态进化:体验与隐私双重保障,为用户带来全新数字探索之旅
            随着10月22日华为正式发布HarmonyOS5,鸿蒙生态迎来了“全新数字底座”的诞生。跨设备的生态整合成了系统的关键特色,截至目前,搭载鸿蒙系统的设备已超过10亿台。如此庞大的装机量和日益成熟的生态环境让鸿蒙生态迅速崛起,并在智能手机、家居、穿戴设备、车载系统......
  • MySQL索引
    索引概述介绍索引(index)是帮助MySQL高效获取数据的数据结构(且有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。优缺点索引结构MySQL的索引是在存储引......
  • 论坛系统测试报告
    一、项目介绍为“论坛系统”项目设计并实施自动化测试,自动化测试是通过Selenium编写的自动化脚本,覆盖了用户登录、用户注册等核心功能模块,确保该项目各个模块功能的稳定,使用户有流畅的论坛浏览和使用体验。策略:对论坛进行,功能测试,界面测试,易用性测试,安全测试,性能测试,兼容性......
  • 2024最新Instagram养号攻略!海外社媒起号码住了
    Instagram至今仍然是全球顶级的流量平合,不仅在国外是各大网红明星必备app,国内下载量也居高不下,但从2018年下半年开始加大了对新账号的监控和权限限制。新注册的账号会受到诸多限制,稍不慎就会进入安全模式或者被封,所以如果你正打算为企业或个人运营Instagram账号,做好养号成了必......
  • 海外联盟营销入门:2024最新指南
    在联盟营销(AffiliateMarketing)过程中,人们往往会在项目所需的电商、博客、社媒等平台上推广产品或服务以获得佣金收入,有数据显示联盟营销为数字媒体行业带来了15%的增长收入。然而,在联盟营销带来利润丰厚的同时,他也存在一个难题:有效的多账户管理。如果没有合适的工具,联盟营销很......
  • 如何在社媒平台上使用代理IP来保护帐号安全
    社媒平台如Facebook、Twitter、Instagram等,不仅是用户分享生活与信息的重要平台,也是各类网络攻击的目标。利用代理IP可以帮助使用者保护帐号安全,防止个人信息外泄和帐号被盗用的风险。一、为什么需要使用代理IP保护社媒帐号?在社媒上,用户的活动和个人信息被频繁记录和追踪,包括......
  • 如何使用SOCKS5代理提升匿名性
    一、SOCKS5代理的基本概念与工作原理SOCKS5代理是一种网络协议,其主要功能是在客户端和服务器之间进行资料传输的中介。相较于其他代理协议,SOCKS5具有更高的灵活性和安全性,能够支援UDP和TCP协议,以及身份验证和加密等特性。SOCKS5代理工作原理简单明了:当使用者透过SOCKS5代理服......
  • LCSCI4207 undamentals of Computer Science
    AssessmentBrief:IndividualCoursework2024–25*~/AssessmentDetailsCourseTitle:undamentalsofComputerScienceICourseCode:LCSCI4207CourseLeader:AlexandrosKoliousisThesettingYouaregoingtodesignanapplicationthatenablesusers(inourcas......
  • BasicTS: 探索多元时间序列预测的进展: 综合基准和异质性分析(综述、长序列预测、时空
    2024年10月29日,在读一篇长序列预测&时空预测的综述的博客,记录一下自己需要的内容。原博客链接:「万字长文」长序列预测&时空预测,你是否被这些问题困扰过?一文带你探索多元时间序列预测的研究进展!论文:ExploringProgressinMultivariateTimeSeriesForecasting:Comprehensive......
  • noip模拟1
    A追逐游戏(chase)后悔没做玮给的那道题了。。就是分讨,有两种情况。第一种是那个人先到终点,追的人追不上,这样答案就是追的人到终点的距离,在终点追上。第二种是追的人先被追的人的毕经之路上(当然也可以一开始就在必经之路上),这样等效于一条从\(x->s\)的树链,被追的人走\(\fr......