[HDOJ2602]Bone Collector(01背包)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602

裸的。。。

 1 #include <algorithm>
 2 #include <iostream>
 3 #include <iomanip>
 4 #include <cstring>
 5 #include <climits>
 6 #include <complex>
 7 #include <fstream>
 8 #include <cassert>
 9 #include <cstdio>
10 #include <bitset>
11 #include <vector>
12 #include <deque>
13 #include <queue>
14 #include <stack>
15 #include <ctime>
16 #include <set>
17 #include <map>
18 #include <cmath>
19
20 using namespace std;
21
22 const int maxn = 555555;
23 int n, m;
24 int v[maxn];
25 int w[maxn];
26 int dp[maxn];
27
28 int main() {
29     // freopen("in", "r", stdin);
30     int T;
31     scanf("%d", &T);
32     while(T--) {
33         memset(dp, 0, sizeof(dp));
34         memset(v, 0, sizeof(v));
35         memset(w, 0, sizeof(w));
36         scanf("%d %d", &n, &m);
37         for(int i = 1; i <= n; i++) scanf("%d", &v[i]);
38         for(int i = 1; i <= n; i++) scanf("%d", &w[i]);
39         for(int i = 1; i <= n; i++) {
40             for(int j = m; j >= w[i]; j--) {
41                 dp[j] = max(dp[j], dp[j-w[i]]+v[i]);
42             }
43         }
44         printf("%d\n", dp[m]);
45     }
46     return 0;
47 }
时间: 2024-11-05 00:42:21

[HDOJ2602]Bone Collector(01背包)的相关文章

hdu2602 Bone Collector (01背包)

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

HDU 2602 Bone Collector(01背包裸题)

Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 60469    Accepted Submission(s): 25209 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): 50442    Accepted Submission(s): 21153 Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bon

HDU 2602 Bone Collector (01背包DP)

题意:给定一个体积,和一些物品的价值和体积,问你最大的价值. 析:最基础的01背包,dp[i] 表示体积 i 时最大价值. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream>

hdoj 2620 Bone Collector(0-1背包)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 思路分析:该问题为经典的0-1背包问题:假设状态dp[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值,则可以推导出dp递推公式 dp[i][v] = Max{dp[i-1][v], dp[i-1][v – c[i]] + w[i]}:c[i]表示第i件物品的容量,w[i]表示第i件物品的价值:该动态规划问题每个阶段的决策为是否要 选择第i件物品放入背包中,如果不选择第i件物

hdu 2602 Bone Collector 01背包模板

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 题目要求是尽量装的最多,所以初始化的时候都为0即可. 如果要求恰好装满,初始化的时候除了dp[0] = 0,其他都要设成-inf,表示不合法情况. 1 #include <bits/stdc++.h> 2 using namespace std; 3 int T; 4 int dp[1010][1010]; 5 int v[1010], w[1010]; 6 int main() 7 { 8

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

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 ,

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