zoukankan      html  css  js  c++  java
  • hdu 2602:Bone Collector(01背包)

    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 , 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

    题意分析:

    有一个骨头收集者,有一个体积为V的口袋,每个骨头有自己的价值和体积,求最多能装入口袋骨头的价值是多少。

    解题思路:

    01背包,注意第一行是价值,第二行是体积。

    #include <stdio.h>
    #include <string.h>
    #include <algorithm>
    #define N 1020
    using namespace std;
    struct date{
    	long long v;
    	long long w;
    }a[N];
    long long dp[N];
    int main()
    {
    	int t, n, m, i, j;
    	scanf("%d", &t);
    	while(t--)
    	{
    		memset(dp, 0, sizeof(dp));
    		scanf("%d%d", &n, &m);	
    		for(i=1; i<=n; i++)
    			scanf("%lld", &a[i].v);
    		for(i=1; i<=n; i++)
    			scanf("%lld", &a[i].w);
    		for(i=1; i<=n; i++)
    			for(j=m; j>=a[i].w; j--)
    				dp[j]=max(dp[j], dp[j-a[i].w]+a[i].v);
    		printf("%lld
    ", dp[m]);
    	}
    	return 0;
    }
  • 相关阅读:
    使用Loadrunner监控Windows资源
    Tomcat使用线程池配置高并发连接
    性能测试中遇到的坑
    本地eclipse启动tomcat后无法访问
    Linux常用命令汇总
    Dubbo底层采用Socket进行通信详解
    今天遇到了一个Spring出现的一个未知错误,分享下
    maven pom.xml 详细
    Oracle 数据库中在使用中文模糊查询时输入中文查询不到结果的解决方法
    mybatis属性详解
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/11852540.html
Copyright © 2011-2022 走看看