hdu2602 Bone Collector--01背包
2016-04-20 12:33
429 查看
原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=2602
一:原题内容
[align=left]Problem Description[/align]
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 ?
[align=left]Input[/align]
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.
[align=left]Output[/align]
One integer per line representing the maximum of the total value (this number will be less than 231).
[align=left]Sample Input[/align]
1
5 10
1 2 3 4 5
5 4 3 2 1
[align=left]Sample Output[/align]
14
二:分析理解
dp
[v]表示在容积为v的情况下,放进前n个骨头的最大重量。
三:AC代码
参考博客: http://www.cnblogs.com/Su-Blog/archive/2012/08/28/2659872.html
一:原题内容
[align=left]Problem Description[/align]
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 ?
[align=left]Input[/align]
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.
[align=left]Output[/align]
One integer per line representing the maximum of the total value (this number will be less than 231).
[align=left]Sample Input[/align]
1
5 10
1 2 3 4 5
5 4 3 2 1
[align=left]Sample Output[/align]
14
二:分析理解
dp
[v]表示在容积为v的情况下,放进前n个骨头的最大重量。
三:AC代码
#include<iostream> #include<algorithm> using namespace std; int T; int n, v; int va[1005]; int vo[1005]; int dp[1005][1005]; int main() { scanf("%d", &T); while (T--) { scanf("%d%d", &n, &v); memset(dp, 0, sizeof(dp)); for (int i = 1; i <= n; i++) scanf("%d", &va[i]); for (int i = 1; i <= n; i++) scanf("%d", &vo[i]); for (int i = 1; i <= n; i++) { for (int j = 0; j <= v; j++) { if (j - vo[i] >= 0) dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - vo[i]] + va[i]); else dp[i][j] = dp[i - 1][j]; } } printf("%d\n", dp [v]); } return 0; }
参考博客: http://www.cnblogs.com/Su-Blog/archive/2012/08/28/2659872.html
相关文章推荐
- 记录
- 玩转Bash脚本:数值计算
- 线程的生命周期以及控制线程
- 【NOIP2015模拟11.3】IOIOI卡片占卜
- 深入理解JVM(五)——HotSpot垃圾收集器详解
- Spark组件之SparkR学习2--使用spark-submit向集群提交R代码文件dataframe.R
- AndroidViewPager的使用(一)
- 深入理解JVM(五)——HotSpot垃圾收集器详解
- 小波分析:二、一维连续小波变换
- error C2011: “LockTypeEnum”: “enum”类型重定义
- hduoj1213(并查集)
- set/multiset_01
- 666
- HTML4+CSS2与HTML5+CSS3区别
- sdut2880
- ListView的滑动删除
- 在Activity/Fragment以外使用Toast(涉及到对context上下文的理解与运用)
- 网易webapp 通过js计算html的font-size
- asp.net web api 解决ajax跨站点post请求提交 json 数据问题
- 如何获得Windows 8.1中已记住的WIFI的明文密码