完全背包问题,当饥荒背包容量修改很大时,如何在...

&&&&背包问题(0-1背包,完全背包,多重背包知识概念详解)
&背包问题(0-1背包,完全背包,多重背包知识概念详解)
背包问题(0-1背包,完全背包,多重背包知识概念详解)内含实例代码解析,详细讲解了背包的基本概念及简单运用问题
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动***等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
课程资源下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
背包问题(0-1背包,完全背包,多重背包知识概念详解)
所需积分:3
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
背包问题(0-1背包,完全背包,多重背包知识概念详解)
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员完全背包问题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
完全背包问题
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢nyoj311 完全背包 经典背包问题-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
nyoj311 完全背包 经典背包问题
来源:互联网 更新时间: 21:22:13 责任编辑:鲁晓倩字体:
时间限制: ms &|& 内存限制:65535 KB
直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价值是w。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。本题要求是背包恰好装满背包时,求出最大价值总和是多少。如果不能恰好装满背包,输出NO
输入第一行: N 表示有多少组测试数据(N&7)。
接下来每组测试数据的第一行有两个整数M,V。 M表示物品种类的数目,V表示背包的总容量。(0&M&=2000,0&V&=50000)
接下来的M行每行有两个整数c,w分别表示每种物品的重量和价值(0&c&&w&100000)输出对应每组测试数据输出结果(如果能恰好装满背包,输出装满背包时背包内物品的最大价值总和。 如果不能恰好装满背包,输出NO)样例输入
1几乎套个模板就出来了,还算简单,01背包初始化的时候dp[]全部赋值为0就行,而完全背包问题所求的是刚好装满的情况,所以赋初值应该全部位负无穷,而dp[0]=0;
#include&iostream&
#include&cstdio&
#include&algorithm&
using namespace
#define maxx -0X7ffff
int main()
int t,i,j,k,m,v;
int price,weight,w[2010],p[2010],dp[50010];
while(t--)
fill(dp,dp+50010,maxx);//赋初值,应为负无穷,用fill初始化,memset适合于赋0或-1;
cin&&m&&v;
for(i=0;i&m;i++)
scanf("%d %d",&weight,&price);
if(weight&=v)//优化了一下,把大的直接给过滤掉,节省时间
w[k]=p[k]=++k;
dp[0]=0;//别忘了这个
for(i=0;i&k;i++)
for(j=w[i];j&=v;j++)
dp[j]=max(dp[j],dp[j-w[i]]+p[i]);
if(dp[v]&0)
cout&&dp[v]&&
else cout&&"NO"&&
相关文章:
上一篇文章:下一篇文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号

参考资料

 

随机推荐