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;
}
}
}