Bone Collector(ZeroOnebag)

Bone Collector

Problem 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 231).

Sample Input

1

5 10

1 2 3 4 5

5 4 3 2 1

Sample Output

14

 模板题,找到状态转移方程,使用一维01背包,对于背包的体积要逆序遍历,这样是的右边的max(f[j],f[j-v[i]]+val[i])能够表示为上一层的状态,而对于当j<v[i时,默认f[j]不变,是上一层的值

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 using namespace std;
 5 int main()
 6 {
 7     int T,V;
 8     int v[1001],val[1001];
 9     int f[1001];
10     int i,N,j;
11     cin>>T;
12     while(T--)
13     {
14         memset(f,0,sizeof(f));
15         cin>>N>>V;
16         for(i=1;i<=N;i++)
17             cin>>val[i];
18         for(i=1;i<=N;i++)
19             cin>>v[i];
20         for(i=1;i<=N;i++)
21         {
22             for(j=V;j>=v[i];j--)
23                 f[j]=max(f[j],f[j-v[i]]+val[i]);
24         }
25         cout<<f[V]<<endl;
26     }
27 }
时间: 2024-10-18 21:06:28

Bone Collector(ZeroOnebag)的相关文章

hdu Bone Collector(背包)

二位数组做法; #include<stdio.h> #include<string.h> #define M 1009 typedef struct pack { int cost; int val; }PACK; int f[M][M];<pre name="code" class="cpp">#include<stdio.h> #include<string.h> #define M 1009 type

Bone Collector(dp 01背包)

Problem 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 volu

hdu2602 Bone Collector (01背包)

本文出自:http://blog.csdn.net/svitter 题意:典型到不能再典型的01背包.给了我一遍AC的快感. //============================================================================ // Name : 2602.cpp // Author : vit // Version : // Copyright : Your copyright notice // Description : Hello

【HDU2602】Bone Collector(01背包)

Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 38586    Accepted Submission(s): 16007 Problem Description Many years ago , in Teddy's hometown there was a man who was called "Bo

hdu 2602 Bone Collector(01背包)模板

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 54132    Accepted Submission(s): 22670 Problem Description Many years ago , in

杭电 2603 Bone Collector(简单01背包)

Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 35296    Accepted Submission(s): 14531 Problem Description Many years ago , in Teddy's hometown there was a man who was called "Bo

Bone Collector(杭电2602)(01背包)

Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 31604    Accepted Submission(s): 13005 Problem Description Many years ago , in Teddy's hometown there was a man who was called "Bo

hdu 2602 Bone Collector(01背包)

Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 42179    Accepted Submission(s): 17543 Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bon

杭电 HDU ACM Bone Collector (dp 01)

Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 40414    Accepted Submission(s): 16794 Problem Description Many years ago , in Teddy's hometown there was a man who was called "Bo