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;
    }
  • 相关阅读:
    foxmail邮箱在代理环境下不能使用解决方法。
    Win7下IE8无法打开https类型的网站解决方法笔记
    重新注册IE组件
    Web开发者的六个代码调试平台
    仿Material UI框架的动画特效
    JS几种数组遍历方式以及性能分析对比
    js 函数提升和变量提升
    彻底掌握this,call,apply
    深入理解requestAnimationFrame
    基于iscroll.js实现下拉刷新和上拉加载特效
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/11852540.html
Copyright © 2011-2022 走看看