zoukankan      html  css  js  c++  java
  • HDU 2602 Bone Collector(01背包裸题)

    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 thereare 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 2 31).

    Sample Input:

    1
    5 10
    1 2 3 4 5
    5 4 3 2 1

    Sample Output:

    14


    思路:

    动规01 背包模板题,真的是裸的不能再裸了。

    代码:

    #include<stdio.h>
    #include<iostream>
    #include<queue>
    #include<cstring>
    #include<cmath>
    
    using namespace std;
    
    #define MAXN 1005
    
    int N,V;
    int vol[MAXN],val[MAXN];
    int dp[MAXN];
    
    int main()
    {
    	int T;
    	scanf("%d",&T);
    	while(T--)
    	{
    		memset(dp,0,sizeof(dp));
    		scanf("%d %d",&N,&V);
    		for(int i=0 ; i<N ; i++)
    		{
    			scanf("%d",&val[i]);
    		}
    		for(int i=0 ; i<N ; i++)
    		{
    			scanf("%d",&vol[i]);
    		}
    		for(int i=0 ; i<N ; i++)
    		{
    			for(int j=V ; j>=vol[i] ; j--)
    			{
    				dp[j] = max(dp[j],dp[j-vol[i]]+val[i]);
    			}
    		}
    		printf("%d
    ",dp[V]);
    	}
    	return 0;
    }
  • 相关阅读:
    C#访问MySql连接字符串
    简单的async和await用法
    Nuget新旧地址更换
    【NPS】nps分多少算好
    「干货」什么Linux是邮件服务器?
    「干货」编程语言十大经典算法,你知道几个?
    实验干货分享:用Go语言实现分布式缓存开发之map
    开发微信小程序游戏真的有手就行吗?
    图数据库Neo4j的介绍与使用
    干货分享:什么是Java设计三大工厂模式?
  • 原文地址:https://www.cnblogs.com/vocaloid01/p/9514289.html
Copyright © 2011-2022 走看看