Bone Collector(基础 0-1背包)
来源:互联网 发布:windows dns配置文件 编辑:程序博客网 时间:2024/06/05 18:54
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 231).
Sample Input
15 101 2 3 4 55 4 3 2 1
Sample Output
14#include<stdio.h>#include<stdlib.h>#include<string.h>int max(int a, int b){ return a>b?a:b;}int main(){ int t,j,i,dv; int n; int dp[1005][1005],gv[1005],gz[1005]; scanf("%d",&t); while(t--) { memset(dp,0,sizeof(dp)); memset(gv,0,sizeof(gv)); memset(gz,0,sizeof(gz)); scanf("%d%d",&n,&dv); for(i=1;i<=n;i++) scanf("%d",&gz[i]); //从1开始 因为下面要用到i-1。 for(i=1;i<=n;i++) scanf("%d",&gv[i]); //从1开始 因为下面要用到i-1。 for(i=1;i<=n;i++) for(j=0;j<=dv;j++) { if(j<gv[i]) dp[i][j]=dp[i-1][j]; //注意此处是i-1。 else dp[i][j]=max(dp[i-1][j],dp[i-1][j-gv[i]]+gz[i]);//注意此处是i-1。 } printf("%d\n",dp[n][dv]); } return 0;}
阅读全文
1 0
- Bone Collector(基础 0-1背包)
- HDOJ2602 Bone Collector(0/1背包)
- Bone Collector(0-1背包模板)
- HDU 2602(Bone Collector)基础0-1背包问题
- hdu 2602 Bone Collector(0 1背包)
- HDOJ 2602 Bone Collector(0-1背包)
- HDU 2602 Bone Collector(0/1背包)
- hdu 2602Bone Collector(0/1背包)
- Bone Collector (简单的0-1背包问题) HDU
- HDU 2602 Bone Collector (0/1背包问题)
- hdoj 2602 Bone Collector (0-1)背包
- hdu 2602 Bone Collector(0 1 背包简单入门)
- HDU 2602 Bone Collector (简单的0-1背包)
- HDU 2602----Bone Collector(0-1背包)
- HDU Bone Collector(背包0/1)
- HD 2602 Bone Collector (0-1背包)
- hdu 2602 Bone Collector(0-1背包)
- HDU 2602 Bone Collector (0-1背包)
- 传播正能量——做一个快乐的程序员&架构师
- Hibernate学习---Configuration,Session,SessionFactory
- Java并发知识点总结
- 前端优化策略列举(二)
- 常见网络通信制式基本常识
- Bone Collector(基础 0-1背包)
- RCNN个人的几点见解
- 时间处理大总结之Python
- Ubuntu 16.04 LTS国内快速更新源
- numpy 多维矩阵
- python3 deque(双向队列)用法
- 程序员进阶:怎么成为一个软件架构师?
- 排序算法之冒泡(一)
- Oracle中的translate函数用法