hdu 2602
2015-08-13 10:59
274 查看
Description
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave …
The bone collector had a big bag with a volume of V ,and along his trip of collecting there are a lot of bones , obviously , different bone has different value and different volume, now given the each bone’s value along his trip , can you calculate out the
maximum of the total value the bone collector can get ?
Input
The first line contain a integer T , the number of cases.
Followed by T cases , each case three lines , the first line contain two integer N , V, (N <= 1000 , V <= 1000 )representing the number of bones and the volume of his bag. And the second line contain N integers representing the value of each bone. The third
line contain N integers representing the volume of each bone.
Output
One integer per line representing the maximum of the total value (this number will be less than 2
31).
Sample Input
1
5 10
1 2 3 4 5
5 4 3 2 1
Sample Output
14 题意:第一行输入案例数,第二行输入两个整数N,V,分别代表骨头的数量和袋子的体积,接下来的两行分别有N个整数,分别代表骨头的价值和体积,问你在袋子装满的情况下价值最大,求出最大价值。思路:典型的0-1背包问题,让价值作为背包,value[i]代表骨头的体积,volume[i]代表骨头的体积,dp[i]代表骨头的价值,求出其最大值就好了。代码:
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave …
The bone collector had a big bag with a volume of V ,and along his trip of collecting there are a lot of bones , obviously , different bone has different value and different volume, now given the each bone’s value along his trip , can you calculate out the
maximum of the total value the bone collector can get ?
Input
The first line contain a integer T , the number of cases.
Followed by T cases , each case three lines , the first line contain two integer N , V, (N <= 1000 , V <= 1000 )representing the number of bones and the volume of his bag. And the second line contain N integers representing the value of each bone. The third
line contain N integers representing the volume of each bone.
Output
One integer per line representing the maximum of the total value (this number will be less than 2
31).
Sample Input
1
5 10
1 2 3 4 5
5 4 3 2 1
Sample Output
14 题意:第一行输入案例数,第二行输入两个整数N,V,分别代表骨头的数量和袋子的体积,接下来的两行分别有N个整数,分别代表骨头的价值和体积,问你在袋子装满的情况下价值最大,求出最大价值。思路:典型的0-1背包问题,让价值作为背包,value[i]代表骨头的体积,volume[i]代表骨头的体积,dp[i]代表骨头的价值,求出其最大值就好了。代码:
#include<cstdio> #include<cstring> #include<algorithm> int value[1010];//价值 int volume[1010];//体积 int dp[1010];//价值作为背包 using namespace std; int main() { int T; int N,V; int sum; scanf("%d",&T); while(T--) { sum=0; scanf("%d%d",&N,&V); for(int i=0; i<N; i++) scanf("%d",&value[i]); //输入 for(int i=0; i<N; i++) { scanf("%d",&volume[i]); //sum+=volume[i]; } memset(dp,0,sizeof(dp)); // dp[0]=0;//价值为0的时候肯定为V for(int i=0; i<N; i++) for(int j=V; j>=volume[i]; j--) dp[j]=max(dp[j],dp[j-volume[i]]+value[i]); printf("%d\n",dp[V]); } return 0; }
相关文章推荐
- 天云星数据库介绍
- android 应用如何实现多个Activity在栈中finish掉
- Javascript 遍历对象的属性
- Date的常用工具类
- convertView.setTag解析
- Java NIO实例-DatagramChannel实现UDP协议传输
- 如何进入VMware Fusion虚拟机BIOS
- 自学MVC看这里——全网最全ASP.NET MVC 教程汇总
- 集合遍历的几种方式
- 响应式Web图形篇 —— icon fonts 的探析及应用
- Treasure Exploration---poj2594(传递闭包+最大匹配)
- SpringMVC表单标签(1)
- mac下安装node之后,npm无效指令
- post,get产生乱码的现象
- hdu-1301 Jungle Roads
- column mode in VIM
- Linux入门清单
- SSH原理与运用
- Fresco图片加载框架之自总结Demo分享
- 抽象类与接口之间的继承和实现关系