hdu 2602 01背包入门
来源:互联网 发布:数字摇奖软件 编辑:程序博客网 时间:2024/06/05 19:47
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 <iostream>#include <cstring>using namespace std;struct node{ int val; int weight;}a[1010];int main(){ int t; int n,v; int i,j; cin>>t; while(t--) { int dp[1005];//i表示的是重量 cin>>n>>v; for(int i=0;i<n;++i) cin>>a[i].val; for(int i=0;i<n;++i) cin>>a[i].weight; memset(dp,0,sizeof(dp)); for(int i=0;i<n;++i) for(int j=v;j>=a[i].weight;--j) dp[j]=max(dp[j],dp[j-a[i].weight]+a[i].val); cout<<dp[v]<<endl; } return 0;}
阅读全文
0 0
- hdu 2602 01背包入门
- hdu 2602 01背包入门
- hdu 2602 (01背包入门)
- 背包入门 01背包 hdu 2546
- 背包入门 01背包 hdu 2955 Robberies
- 背包问题 入门 hdu 2602
- hdu 2602 Bone Collector (01背包 入门)
- [HDU 2602 Bone Collector] 宇宙无敌入门01背包
- HDU 2602 捡骨头 【入门DP之01背包】
- HDU 2602 Bone Collector【01背包入门题】
- hdu 2602 Bone Collector (背包入门)
- HDU 3466 【DP入门之01背包】
- HDU 2602 01背包
- 01背包 HDU 2602
- HDU 2602 01背包
- hdu 2602 01背包
- hdu 2602 01背包
- hdu 2602 01背包
- 找出最长的一个单词
- py匹配字符串中间的字符串
- 文本处理 (包括C++和shell)
- 如何做bug分析
- OpenStack领域这么火 这家企业凭什么稳居第一梯队?
- hdu 2602 01背包入门
- 项目开发实训日记(二)
- 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
- 二叉树遍历
- awk获取最后一列
- ACM常识总结
- ubuntu 16.04 安装FTP服务器
- Node.js —— Waterline的介绍和使用
- 两个运算命令 expr bc