01背包
来源:互联网 发布:三国杀菜刀的淘宝 编辑:程序博客网 时间:2024/05/16 05:32
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 ?
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.
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
15 101 2 3 4 55 4 3 2 1
Sample Output
14#include<iostream>#include<string.h>#include<stdio.h>#include<ctype.h>#include<algorithm>#include<stack>#include<queue>#include<set>#include<math.h>#include<vector>#include<deque>#include<list>using namespace std;int dp[2000],m;void ZeroOnePack(int cost,int weight){ int v; for(v=m;v>=cost;v--) if(dp[v]<dp[v-cost]+weight)//比较0,1的大小 dp[v]=dp[v-cost]+weight;}int main(){ int i,t,n,c[1001],w[1001]; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(i=0;i<n;i++) cin>>w[i]; for(i=0;i<n;i++) cin>>c[i]; memset(dp,0,sizeof(dp)); for(i=0;i<n;i++) ZeroOnePack(c[i],w[i]); printf("%d\n",dp[m]); } return 0;}
0 0
- 【背包专题】01背包
- 01背包,完全背包
- 01背包 完全背包
- 01背包/完全背包
- 01背包,完全背包
- 背包问题---01背包
- 背包入门--01背包
- 【背包专题】01背包
- 01背包,完全背包
- 01背包,完全背包, 多重背包
- 01背包,完全背包,多重背包
- 01背包、完全背包、多重背包详解
- 01背包,完全背包,多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包模板
- hdu 1874 畅通工程续
- Java面试中关于String的问题总结
- 一个不超过10位的数字,要显示每个数字对应英文,程序不知道哪里出错,10位数字老错
- 第八章 Spring Bean的生命周期(Spring Framework3.1教程)
- 从logistic regression到MCMC
- 01背包
- Copy Books
- ListView中convertView只有第一次为null的原因
- 分享我在喜折折返利网真人晒单详细步骤
- LIB和DLL的区别与使用
- Matlab产生独立可运行C代码
- 遇到点小问题,请大家帮助纠错
- code forces 393B Three matrices
- BZOJ 1012: [JSOI2008]最大数maxnumber