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

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602

    Bone Collector

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


    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
     
     
    题目大意:在所给的体积范围内,拿到尽可能多的价值的骨头。
    注意:先给的是每个骨头的价值,再给的是每个骨头的体积。因为弄反而wa就很不值了哦~
     
    详见代码。
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cmath>
     4 #include <cstring>
     5 using namespace std;
     6 
     7 int main ()
     8 {
     9     int t;
    10     int dp[1010],v[1010],w[1010];
    11 
    12     while (cin>>t)
    13     {
    14         while (t--)
    15         {
    16             memset(dp,0,sizeof(dp));
    17             int n,V,i,j;
    18             cin>>n>>V;
    19             for ( i=1; i<=n; i++)
    20                 cin>>w[i];
    21             for (i=1; i<=n; i++)
    22                 cin>>v[i];
    23             for (i=1; i<=n; i++)
    24             {
    25                 for (j=V; j>=v[i]; j--)
    26                 {
    27                     dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
    28                     //cout<<dp[j]<<" "<<v[i]<<endl;
    29                 }
    30             }
    31             printf ("%d
    ",dp[V]);
    32         }
    33 
    34     }
    35     return 0;
    36 }
     
     
     
     
  • 相关阅读:
    React创建组件的方式
    react jsx语法
    mui区域滚动失效的问题
    css3 currentColor
    http协议
    iframe用法
    html关于强制显示、隐藏浏览器的滚动条
    null与undefind的区别(转)
    如何实现背景透明,文字不透明,兼容所有浏览器?
    事件委托
  • 原文地址:https://www.cnblogs.com/qq-star/p/3962633.html
Copyright © 2011-2022 走看看