• 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 }
  • 相关阅读:
    为什么要使用href=”javascript:void(0);”
    切图要点
    css属性学习
    CentOS7使用yum安装RabbitMQ
    Linux下,root权限才能启动1024以下端口的程序
    Gitlab备份和恢复操作记录
    rpm批量卸载所有带有Java的文件
    如何使用微软官方工具制作win10启动盘
    重装系统时,将MBR分区转为GPT 分区
    walle 2.0 上线部署
  • 原文地址:https://www.cnblogs.com/a1225234/p/4695347.html
Copyright © 2020-2023  润新知