小P寻宝记——好基友一起走
2015-11-20 17:05
218 查看
小P寻宝记——好基友一起走
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
话说,上次小P到伊利哇呀国旅行得到了一批宝藏。他是相当开心啊,回来就告诉了他的好基友小鑫,于是他们又结伴去伊利哇呀国寻宝。这次小P的寻宝之路可没有那么的轻松,他们走到了一个森林,小鑫一不小心被触发了机关,被困在了一个大笼子里面,笼子旁边上有一道题目和一个密码锁,上面说只要解出此题输入密码即可救出被困人。小鑫不是很聪明,所以他做不出来,他知道小P很笨,更解不出来。所以他就让小P独自回去,不用管他。但是小P重情重义不会抛弃他离去。他说:“不,好基友一起走!”。于是就感动了上帝,上帝特派你来替他们解决问题。聪明的你要加油了啊!
题目描述:给你n种物品和一个体积为v的包包。每种物品有无数种,体积是vi价值是wi。求出包包v所能装的最大价值的东西。
输入
多组输入。第一行有两个正整数n(0<n<=10000), v(0<v<= 10000)。接下来两行每行有n个数字。第一行表示每种物品的价值wi(0<wi<100),第二行表示每种物品的体积vi(0<vi<100)。输出
输出最多可以得到的价值。输出结果救出小鑫。示例输入
5 20 1 2 3 4 5 2 6 3 5 4
示例输出
25
提示
来源
xfl示例程序
#include<stdio.h> #include<string.h> int dp[10100],wi[10100],vi[10100]; int main() { int n,v,i,j; while(scanf("%d %d",&n,&v)!=EOF) { memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) scanf("%d",&wi[i]); for(i=1;i<=n;i++) scanf("%d",&vi[i]); for(i=1;i<=n;i++) { for(j=vi[i];j<=v;j++) { dp[j]=dp[j]>dp[j-vi[i]]+wi[i]?dp[j]:dp[j-vi[i]]+wi[i]; } } printf("%d\n",dp[v]); } return 0; }
相关文章推荐
- 安装包制作工具NSIS (NullSoft Scriptable Install System)
- <转> jquery radio 常见操作
- Launcher的分析
- xmppframe使用
- JS中的prototype
- SQL行转列
- HDU1058
- 让Windows Server 2008 + IIS 7+ ASP.NET 支持10万并发请求
- 【转】Jmeter使用之常用函数介绍
- 掌握sudo的使用
- PHP 时间和日期
- OS X系统下Eclipse Open Declaration快捷键的回退键
- Win10 Mobile版微软照片更新到1118:增加新的视频修剪功能
- 小P寻宝记——粗心的基友
- springMVC工作原理(转)
- web.xml文件元素描述
- 洗牌算法
- java.lang.Thread.State类详解
- 理解SQL【转http://blog.jobbole.com/55086/】
- 【转】JMeter使用指南