zoukankan      html  css  js  c++  java
  • Bone Collector(ZeroOnebag)

    Bone Collector

    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
     模板题,找到状态转移方程,使用一维01背包,对于背包的体积要逆序遍历,这样是的右边的max(f[j],f[j-v[i]]+val[i])能够表示为上一层的状态,而对于当j<v[i时,默认f[j]不变,是上一层的值
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstring>
     4 using namespace std;
     5 int main()
     6 {
     7     int T,V;
     8     int v[1001],val[1001];
     9     int f[1001];
    10     int i,N,j;
    11     cin>>T;
    12     while(T--)
    13     {
    14         memset(f,0,sizeof(f));
    15         cin>>N>>V;
    16         for(i=1;i<=N;i++)
    17             cin>>val[i];
    18         for(i=1;i<=N;i++)
    19             cin>>v[i];
    20         for(i=1;i<=N;i++)
    21         {
    22             for(j=V;j>=v[i];j--)
    23                 f[j]=max(f[j],f[j-v[i]]+val[i]);
    24         }
    25         cout<<f[V]<<endl;
    26     }
    27 }
  • 相关阅读:
    用友U8 | 【存货管理】提示用户***正在记账,不允许并发。
    用友U8 | 怎么准确查找【采购入库单】、【采购发票】,对应的凭证号?
    用友U8 | 中途启用序列号管理,该怎么操作?
    Excel:提取身份证号中的性别
    给jupyter 添加代码自动补全功能
    SQL函数之:截断字符串
    解决Maven子项目提示 ‘parent.relativePath‘ of POM
    公共NTP资源汇总
    iperf3的使用
    ZeroTier的使用
  • 原文地址:https://www.cnblogs.com/a1225234/p/4695347.html
Copyright © 2011-2022 走看看