zoukankan      html  css  js  c++  java
  • 【bzoj1606】[Usaco2008 Dec]Hay For Sale 购买干草 背包dp

    题目描述

    约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单位的马车,去顿因家买一些干草.  顿因有H(1≤H≤5000)包干草,每一包都有它的体积Vi(l≤Vi≤C).约翰只能整包购买,
    他最多可以运回多少体积的干草呢?

    输入

    第1行输入C和H,之后H行一行输入一个Vi.

    输出

    最多的可买干草体积.

    样例输入

    7 3
    2
    6
    5

    样例输出

    7


    题解

    01背包水题,同“装箱问题”。

    #include <cstdio>
    int f[50001];
    int main()
    {
        int c , h , i , v;
        scanf("%d%d" , &c , &h);
        while(h -- )
        {
            scanf("%d" , &v);
            for(i = c ; i >= v ; i -- )
                if(f[i] < f[i - v] + v)
                    f[i] = f[i - v] + v;
        }
        printf("%d
    " , f[c]);
        return 0;
    }
  • 相关阅读:
    Fizz Buzz 问题
    旋转字符串
    合并排序数组
    尾部的零
    A + B 问题
    CentOS6.x安装RabbitMQ
    MySql游标
    MySql存储过程
    找出n个自然数(1,2,3,……,n)中取r个数的组合
    正则表达式
  • 原文地址:https://www.cnblogs.com/GXZlegend/p/6216744.html
Copyright © 2011-2022 走看看