hdu2602 Bone Collector(背包问题)

Bone Collector

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 39612    Accepted Submission(s): 16412

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

Author

Teddy

Source

HDU 1st “Vegetable-Birds Cup” Programming
Open Contest

Recommend

lcy   |   We have carefully selected several similar problems for you:  1203 2159 2955 1171 2191

Statistic | Submit | Discuss | Note

非常常规的0 1背包问题。

第一排输入的是价值,第二排是体积

#include <stdio.h>
#include <string.h>
int main()
{
	int n,v;
	int ncase,dp[1005],val[1005],vol[1005];
	scanf("%d",&ncase);
	while(ncase--)
	{
		memset(dp,0,sizeof(dp));
		memset(val,0,sizeof(val));
		memset(vol,0,sizeof(vol));
		scanf("%d %d",&n,&v);
		for(int i=0;i<n;i++)
		scanf("%d",&val[i]);
		for(int i=0;i<n;i++)
		scanf("%d",&vol[i]);
		int max=0;
		for(int i=0;i<n;i++)
		{
			for(int j=v;j>=vol[i];j--)
			{
				if(dp[j]<dp[j-vol[i]]+val[i])
				dp[j]=dp[j-vol[i]]+val[i];
				if(dp[j]>max)
				max=dp[j];
			}
		}
		printf("%d\n",max);
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-05 04:57:37

hdu2602 Bone Collector(背包问题)的相关文章

hdu2602 Bone Collector (01背包)

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

0-1背包问题(经典)HDU2602 Bone Collector

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

HDU2602 Bone Collector 【01背包】

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

【模板--完全背包】HDU--2602 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 volum

hdu2602 Bone Collector

题意:经典的01背包题,给出了石头的数量与背包的容量,然后分别给出每个石头的容量与价值,要求最优解,可以说是01背包果题. http://acm.hdu.edu.cn/showproblem.php?pid=2602 #include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> using namespace std; struct hdu2602{ int val;

HDU-1864&amp;&amp;HDU-2602(01背包问题)

DP-01背包问题例题 输入处理有点恶心人,不过处理完后就是简单的DP了 从头开始dp[i]表示从0开始到i的最优结果,最后从都边里dp数组,求得最大的报销额. 对于每个i都要从头维护最优结果.(二刷感觉仍不得dp精髓,,,,) HDU-1864最大报销额 1 #include <iostream> 2 #include <queue> 3 #include <cstdio> 4 #include <algorithm> 5 #include <cma

HDU 2602 Bone Collector (01背包问题)

原题代号:HDU 2602 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 原题描述: 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 ,

【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

Bone Collector 0-1背包问题

题目描述: 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 a