前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >动态规划——完全背包问题

动态规划——完全背包问题

作者头像
code-child
发布2023-05-30 10:10:48
1600
发布2023-05-30 10:10:48
举报
文章被收录于专栏:codechildcodechildcodechild

问题描述

完全背包问题就是在i个物品中,i个物品无限多,每个物品的价值为w[i],背包的容量为V,在不超过最大容量的前提下,选出的价值最大。

解决

我们这么想,从i个物品中选取体积不超过j的最大值。那么,第i个物品可以有很多种选法——0,1,2,3,4,5,k。但要保证k个i物品不能超过j。 这样我们就可以得到一个状态方程f[i][j]=max(f[i-1][j],f[i-1][j-v]+w,f[i-1][j-2v]+2w........) 我们写一下i个物品,体积不超过j-v的最大值的状态方程,f[i][j-v]=max(f[i-1][j-v],f[i-1][j-2w]+w,.......) 我们发现红色位置它们就相差一个w。 所以对该状态方程进行转换,f[i][j]=max(f[i-1][j],f[i][j-v]+w) 但是现在还是二维的,现在我们对他进行一维的转换f[j]=max(f[j],f[j-v]+w)

image.png
image.png

括号里面的f[j],上一层的,f[j-v]上一层的。

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3q8qvva2m6ic

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 解决
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档