Bone Collector

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 21463    Accepted Submission(s): 8633

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
 
Recommend
lcy

背包问题.....一定要多练习...

代码:----

 #include<stdio.h>
#include<string.h>
#define maxn 1005
int dp[maxn],arr[maxn][];
int max(int a,int b)
{
return a>b?a:b;
} void zeroonepack(int cost ,int value,int v)
{
for(int i=v;i>=cost;i--)
dp[i]=max(dp[i],dp[i-cost]+value); }
int main()
{
int t,n,v ,i;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&v);
memset(dp,,sizeof dp);
for(i=;i<n;i++)
{
scanf("%d",arr[i]+);
}
for(i=;i<n;i++)
{
scanf("%d",arr[i]+);
}
for(i=;i<n;i++)
zeroonepack(arr[i][],arr[i][],v);
printf("%d\n",dp[v]);
}
return ;
}

优化后代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct st
{
int a;
int b;
};
typedef struct st sta;
int main()
{
int test,n,v,i,j;
scanf("%d",&test);
while(test--)
{
scanf("%d%d",&n,&v);
int *dp =(int *)malloc(sizeof(int)*(v+));
sta *stu =(sta *)malloc(sizeof(sta)*(n+));
for(i=;i<n;i++)
scanf("%d",&stu[i].a);
for(i=;i<n;i++)
scanf("%d",&stu[i].b);
for(i=;i<=v;i++)
dp[i]=; for(i=;i<n;i++)
{
for(j=v ; j>=stu[i].b ; j--)
{
if(dp[j]<dp[j-stu[i].b]+stu[i].a)
dp[j]=dp[j-stu[i].b]+stu[i].a;
}
}
printf("%d\n",dp[v]);
free(dp);
free(stu);
}
return ;
}

HDUOJ--Bone Collector的更多相关文章

  1. hdu 2602 Bone Collector(01背包)模板

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 Bone Collector Time Limit: 2000/1000 MS (Java/Ot ...

  2. HDU 2602 Bone Collector WA谁来帮忙找找错

    Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collec ...

  3. Bone Collector(01背包)

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87125#problem/N 题目: Description Many year ...

  4. HDU 3639 Bone Collector II(01背包第K优解)

    Bone Collector II Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  5. Bone Collector II

    Bone Collector II Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...

  6. HDU 2602 Bone Collector (简单01背包)

    Bone Collector http://acm.hdu.edu.cn/showproblem.php?pid=2602 Problem Description Many years ago , i ...

  7. hdu 2602 Bone Collector 背包入门题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 题目分析:0-1背包  注意dp数组的清空, 二维转化为一维后的公式变化 /*Bone Coll ...

  8. hdu 2639 Bone Collector II

    Bone Collector II Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  9. 杭电 2602 Bone Collector

    Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  10. HDU 2602 Bone Collector

    http://acm.hdu.edu.cn/showproblem.php?pid=2602 Bone Collector Time Limit: 2000/1000 MS (Java/Others) ...

随机推荐

  1. word排版汇总

    1.iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf 的文档,而且可以将XML.Html文件转化为PDF ...

  2. wireshark抓取本地回环及其问题

    一:The NPF driver isn't running 这个错误是因为没有开启NPF服务造成的. NPF即网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap ...

  3. 第七章 Xmemcached客户端介绍

    提示:有关于XMemcached在实际开发中的具体使用,查看"Java企业项目开发实践"系列博客的<第八章 企业项目开发--分布式缓存memcached> 注意:本文主 ...

  4. Android中Fragment的简单介绍

    Android是在Android 3.0 (API level 11)引入了Fragment的,中文翻译是片段或者成为碎片(个人理解),可以把Fragment当成Activity中的模块,这个模块有自 ...

  5. 根据外网ip地址定位用户所在城市

    package com.henu.controller; import java.io.BufferedReader; import java.io.DataOutputStream; import ...

  6. Volley框架的介绍使用

    Volley是在2013年的Google I/O 2013大会上发布的,是我们的网络通信更快,更简单,更方便.对于初学者来讲是一个很好的框架. 简单来说,它提供了如下的便利功能: JSON,图像等的异 ...

  7. ExcelReader(解析Excel的工具类)

    package cn.com.css.common.util; import java.io.IOException; import java.io.InputStream; import java. ...

  8. Clion安装配置

    1.安装配置MinGW MinGW安装和使用 Windows下利用Cygwin搭建C/C++开发环境GCC 注:分别是使用MinGW和Cygwin两种方法安装GCC环境,据说Cygwin会好一点……我 ...

  9. TextBox_TextChanged

    private void TextBox_TextChanged(object sender, TextChangedEventArgs e) { TextBox textBox = sender a ...

  10. RUP---统一软件开发过程

    更详细的见:http://www.ibm.com/developerworks/cn/rational/r-rupbp/ 本文引用:http://baike.baidu.com/view/223583 ...