问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

动态规划 0/1背包问题(续) 求思路 怎么判断有没有装满

发布网友 发布时间:2022-04-22 15:48

我来回答

1个回答

热心网友 时间:2022-04-22 17:18

题目要求必须恰好装满,那你就输出动态规划后求出的f[weight],如果f[weight]没被更新过,就输入no solution。

如果题目说可以不装满,就输出f[0..weight]中的最大值。

动态规划的过程:
1.枚举每种物品i
2.枚举j=weight->0,用f[ j ]+p[ i ]去更新f[ j + w[ i ] ],由于是01背包,所以要倒着枚举

有问题请追问追问不装满的我懂,主要是要装满的还是没听懂 什么叫
输出动态规划后求出的f[weight],如果f[weight]没被更新过,就输入no solution。

追答装满的更简单呢,直接输出f[weight]就可以了。

f数组是记录最大价值的,f[ i ]表示容量恰好为i的背包能装多大价值,动态规划的过程,就是用每种物品去更新这个f数组。看看上面写的过程,大概代码就是:
for i := 1 to n do
for j := weight-w[i] downto 0 do
if (f[j]+p[i] > f[j+w[i]]) then
f[j+w[i]] := f[j] + p[i];
if (f[weight] = 0) then writeln('No Solution.') else writeln(f[weight]);

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在爱水APP哪个模块中可以填写个人信息,查询自己一天的饮水量? 黄金为什么是避险产品 避险买什么 避险品种是什么 避险产品什么意思 什么是避险产品 ...对联和我们平时使用的印章,说说使用了哪几个字体 对联上写的是什么字 ...有一空是让我评价我自己,请各位哥哥姐姐帮帮忙,帮我编一段,往好了... 艾灸用品哪种好 烧烤是先考再刷调料吗? 天好了,想和朋友拿的烧烤炉子出去野炊,谁知道刷料怎么调啊,简单味道差不多的就行,谢谢咯! 油炸串串香的刷料是什么?刷酱又是什么? 烧烤刷调料用彩弘羊毛刷怎么样? 为什么LOL段位越往上打队友越菜。有的连黑铁都不如 lol越打越菜怎么办?上赛季打到白金2晋级赛一天打三次没上去直接掉白 本人LOL砖3,因虐低端局越玩越菜了,现在送分送到黄金3,重新打排位在慢慢打上去可行吗? 如何养生 注意一天作息时间安排 英雄联盟越玩越菜,根本不是以前的自己了 英雄联盟越玩越菜 心情复杂。。。 打了英雄联盟200场排位,为什么感觉自己越来越菜了,以前还能单杀呢,现在老是被单杀。什么情况 最近玩英雄联盟越玩越菜了 什么纸飞机飞得好飞得远、空中停留时间长,造型又美观,告诉我什么纸飞机,最好有图纸 快‘‘什么样的纸飞机可以在空中停留的时间长? 急急急!为什么英雄联盟越玩越菜,几乎天天玩,就是感觉没有以前好操作了,漏兵,放空技能,原地卡住? 这两架飞机各飞行多少秒哪一架飞机飞行的时间长一些 什么样的纸飞机在空中飞的时间最长 英雄联盟越玩越菜,几乎天天玩,怎么感觉比以前菜很多,漏兵,放空技能不会打团,原地卡住不动怎么办?? 求小时候玩的陀螺仪玩具,用线拉让它转动,然后就能站着不倒的那个 世界上飞行时间最长的三大纸飞机是那三种 点一份全熟的牛排真的会被人嘲笑吗? 点全熟的牛排真的会被嘲笑? 在国外的西餐厅,点一份全熟的牛排会被嘲笑吗? 在西餐厅用餐时,点一份全熟的牛排真的会被嘲笑吗? 牛排点全熟会很low吗? 做梦和死去的母亲一起吃饭说话,母亲好像还活着一样意味什么? 我想40多要孩子,老婆想30多要孩子,怎么办? 第一次梦见已故的妈妈跟我说话,把她吃的东西吐到我嘴里了,还说了一个人? iPhone6sp是不是三合一卡? 形容暂时停止工作学习和活动的是什么词语 垃圾的回收过程 为什么要作出暂时停止代表执行职务的情形规定 苹果6splus怎么安装sim卡 苹果6sp的手机卡可以用在苹果5s上面吗 什么情况下劳动合同可以暂时停止履行? 暂时停播是什么意思? 翻译成英语,谢谢,航运暂时停止? 暂时停止呼吸聚精会神看是什么词语? 暂时停止工作.学习或活动以消除疲劳,恢复体力或脑力,是什么成语 暂时停止一切娱乐活动,英文怎么说?