【bzoj 1606】 [Usaco2008 Dec]Hay For Sale 購買乾草 01揹包

1606: [Usaco2008 Dec]Hay For Sale 購買乾草
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 978 Solved: 735
[Submit][Status][Discuss]
Description

約翰遭受了重大的損失:蟑螂吃掉了他所有的乾草,留下一羣飢餓的牛.他乘着容量爲C(1≤C≤50000)個單位的馬車,去頓因家買一些乾草.  頓因有H(1≤H≤5000)包乾草,每一包都有它的體積Vi(l≤Vi≤C).約翰只能整包購買,

他最多可以運回多少體積的乾草呢?

Input

第1行輸入C和H,之後H行一行輸入一個Vi.

Output

最多的可買乾草體積.

Sample Input

7 3 //總體積爲7,用3個物品來揹包

2

6

5

The wagon holds 7 volumetric units; three bales are offered for sale with

volumes of 2, 6, and 5 units, respectively.

Sample Output

7 //最大可以背出來的體積

思路:01揹包判斷可行性;

代碼

#include<stdio.h>
#include<iostream>
using namespace std;
int f[50005];
int v[5005];
int main()
{
    int c,h;
    scanf("%d%d",&c,&h);
    for(int i=1;i<=h;i++)
     scanf("%d",&v[i]);
     f[0]=1;
    for(int i=1;i<=h;i++)
    {
        for(int j=c;j>=v[i];j--)
        if(f[j-v[i]]==1) f[j]=1;
    }
    for(int i=c;i>=0;i--)
    {
        if(f[i])
        {
            cout<<i<<endl;
            return 0;
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章