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

淮阳住房城乡建设局网站域名注册查询网站

淮阳住房城乡建设局网站,域名注册查询网站,wordpress wpsignon,北京通州做网站的公司一、背包问题概述 如图,完全背包与01背包的区别只有一点:01背包中每个物品只能取一个而完全背包中每个物品可以取无数个。解决完全背包问题必须首先弄明白01背包,不清楚的可以看我的这篇文章01背包—动态规划。 二、例题 重量价值物品0115物…

一、背包问题概述

请添加图片描述
如图,完全背包与01背包的区别只有一点:01背包中每个物品只能取一个而完全背包中每个物品可以取无数个。解决完全背包问题必须首先弄明白01背包,不清楚的可以看我的这篇文章01背包—动态规划。

二、例题

重量价值
物品0115
物品1320
物品2430

背包最大容量为4。

每一个物品有两个状态,“取”或者“不取”。利用回溯法可以暴力枚举所有物品的状态的排列组合状态,与背包最大容量比较就可以求得最大的价值,时间复杂是O(2n)O(2^n)O(2n)为指数级别,故需要动态规划的解法来进行优化。

三、一维数组(滚动数组)解完全背包

1. 从01背包到完全背包

由01背包—动态规划,我们可以得知一维DP数组是二维DP数组的简化。所以,二维DP数组与一维DP数组在本质上一样的,本文只介绍一维DP数组解完全背包。

对于01背包来说,内循环j是从大到小倒叙遍历的,这样做的原因是防止dp[j]前的元素被污染,避免累加的问题(每个物品只能选一次)。而对于完全背包来说,每个物品可以选择无数次,j从前向后遍历就是对每个容量j都尝试放入物品i看会不会使总价值变大,其本身并不关注放入物品i的个数。所以,完全背包与01背包的代码只有一个区别,就是j的遍历顺序。

// 01背包遍历
for(int i = 0; i < weight.size(); i++) { // 遍历物品for(int j = bagWeight; j >= weight[i]; j--) { // 遍历背包容量dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}
}
// 完全背包遍历
// 先遍历物品,再遍历背包
for(int i = 0; i < weight.size(); i++) { // 遍历物品for(int j = weight[i]; j <= bagWeight ; j++) { // 遍历背包容量dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}
}

2. 01背包与完全背包的不同—遍历顺序

01背包的遍历顺序为:

二维DP数组中,先遍历物品或先遍历背包容量都可以;

一维DP数组中,必须先遍历物品在遍历背包容量。只有这样才能确保每个物品只选一次。

对于完全背包,没有了只能选一次的限制,那么先遍历背包容量再遍历物品可不可以呢?答案是可以的。因为dp[j] 是根据下标j之前所对应的DP数组元素计算出来的。 只要保证下标j之前的DP数组都是经过计算的就可以了。图一是先遍历背包容量再遍历物品;图二是先遍历物品,再遍历背包容量。


请添加图片描述

// 先遍历物品,再遍历背包
for(int i = 0; i < weight.size(); i++) { // 遍历物品for(int j = weight[i]; j <= bagWeight ; j++) { // 遍历背包容量dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}
}// 先遍历背包,再遍历物品
for(int j = 0; j <= bagWeight; j++) { // 遍历背包容量for(int i = 0; i < weight.size(); i++) { // 遍历物品if (j - weight[i] >= 0) dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}
}
http://www.zhongyajixie.com/news/6476.html

相关文章:

  • 电商网站建设需求分析 实例题百度指数是什么意思
  • 北京做网站哪家好宁波seo外包哪个品牌好
  • 软件网站模版长沙seo管理
  • 网络科技公司网站制作百度推广方式
  • 大庆网站建设公司哪家好最近的疫情情况最新消息
  • 做网站麻烦么3d建模培训班一般多少钱
  • aws 建网站北京公司排名seo
  • wordpress 登录发布网站seo具体怎么做
  • 城管局网站建设方案正规seo大概多少钱
  • 太仓做网站公司建立网站有哪些步骤
  • 企业官网 开源吉林seo管理平台
  • 响应式网站的制作网站制作海外seo网站推广
  • 点击网络怎么做网站处理器优化软件
  • 自己开设计工作室网站排名优化技巧
  • 做内部网站费用百度seo排名点击器
  • 丽水企业网站建设举出最新的网络营销的案例
  • 网站链接到邮箱怎么做如何网络推广自己的产品
  • 重庆旅游景点大全排名seo排名工具给您好的建议
  • 网站开发什么语言比较好常州网站建设书生商友
  • b2b网站定制免费seo培训
  • 泰安网站制作工作室广州seo软件
  • nodejs可以做网站么做网站比较好的公司有哪些
  • 网站关键词排名优化公关公司排名
  • 成都专做婚介网站的公司唐山建站公司模板
  • 如何上香港的网站青岛网站建设
  • dw中旅游网站怎么做网站建设全网营销
  • 安徽建筑工程信息网seo整站优化费用
  • 商城类网站建设友情链接出售平台
  • 东莞横沥邮编网站优化排名软件哪些最好
  • 衡水自助建站系统seo 网站排名