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

郑州做网站设计传统生意转型做那个网站好

郑州做网站设计,传统生意转型做那个网站好,wordpress后台中文安装,wordpress安装后查看站点失败01背包(滚动数组方法) 学习资料:代码随想录 (programmercarl.com) 题目链接(和上次一样):题目页面 (kamacoder.com) 思路 使用一维滚动数组代替二维数组。二维数组的解法记录在:代码随想录算…

01背包(滚动数组方法)

学习资料:代码随想录 (programmercarl.com)

题目链接(和上次一样):题目页面 (kamacoder.com)

思路

使用一维滚动数组代替二维数组。二维数组的解法记录在:代码随想录算法训练营第四十五天(动态规划篇)|01背包-CSDN博客

1. dp[j]定义

容量为j的背包可以背的物品的最大价值。

2. 递推公式

dp[j] = max(dp[j], dp[j - weight[i]] + value[i])

3. 初始条件:

dp[0] = 0, 根据递推公式,dp[j]取当前和前面的值的最大值,题目给的价值都是正整数,那么非0下标都初始化为0就可以了。

4. 遍历顺序

先遍历物品,再从大到小遍历背包。之所以要从大到小遍历,是为了防止物品被重复放入。 

e.g. i = 0: dp[1] = 15, dp[2] = max(dp[2] = 0, dp[2-weight[1]] + value[1] = dp[1] + value[1] = 15 + 15 = 30)。 而当从后往前遍历时, i = 0: dp[4] = 15 dp[3] = max(0, dp[2] + value[0]) = max(0, 0 + 15) = 15,是正确的。

二维数组可以从小到大遍历,是因为当前的dp[i][j]不包括当前的物品i,是从[0, i-1]中选取物品。

5. 举例推导dp数组

代码实现

objNum, bagWeight=map(int,input().split())weight= [int(i) for i in input().split()]
value = [int(i) for i in input().split()]dp = [0]*(bagWeight+1)for i in range(objNum): # 遍历物体for j in range(bagWeight, 0, -1):  #遍历背包容量if weight[i] > j:dp[j] = dp[j]else:dp[j] = max(dp[j], dp[j - weight[i]] + value[i])print(dp[bagWeight])

http://www.yayakq.cn/news/547606/

相关文章:

  • 济宁企业做网站石家庄做网站科技公司
  • 佛山 做网站WordPress安全社区
  • 一学一做征文网站seo建网站
  • 美工设计网站推荐wordpress 随机重复
  • html5 网站搭建衍艺网站建设
  • 快站如何做网站刚建的网站百度搜不到
  • 做网站帮京东卖东西怎么合作成都定制企业网站制作
  • 虚拟主机网站源码电商网
  • 中国建设会计协会网站vps建立多个网站
  • 福建省百川建设发展有限公司网站网站建设回访
  • 都江堰网站建设公司百度网站推广怎么做
  • 网站开发有什么好的命题网络营销该如何发展
  • 网站开发参考文献期刊外汇做单记录做单专业网站有哪些
  • 网站如何做app自助建站哪个网站好
  • 手机网站 标题长度暴雪代理最新消息
  • 企业网站排行榜网站怎么做才能被百度收录
  • 四省网站建设自己制作的网页别人如何访问
  • 邢台做网站动态wordpress获取微信用户信息
  • 网站建设 工具开发网站服务
  • 什么是企业营销型网站游戏直播网站怎么做的
  • 网站制作模版百度app打开
  • 做网站时背景图片浮动wordpress 死链提交
  • 用dw做网站的代码软装设计师
  • 中国空间站是干什么的设置网站字体
  • 淅川网站建设四川网站建设设计公司
  • 宝丰县建设局网站秦皇岛建设局招标网
  • 免费ppt下载网站淄博网站建设优化
  • 创建自由摄影师的网站内容汉阳网站推广
  • 惠州建设工程交易网站载wordpress
  • 网站建设开票名称做网站办的营业执照用交税吗