洛谷P2925 [USACO08DEC]干草出售Hay For Sale

 1 //01背包 价值等于体积
 2 //该题卡常 优化:当价值(体积)已超过背包容积时直接输出背包容积 
 3 #include<bits/stdc++.h>
 4 using namespace std;
 5 const int maxn=5005;
 6 const int maxv=50005;
 7 int c,n,v[maxn],f[maxv];
 8 int main()
 9 {
10     scanf("%d%d",&c,&n);
11     for(int i=1;i<=n;++i) scanf("%d",&v[i]);
12     for(int i=1;i<=n;++i)
13         for(int j=c;j>=v[i];--j)
14         {
15             f[j]=max(f[j],f[j-v[i]]+v[i]);
16             if(f[j]>=c) {printf("%d",c);return 0;} 
17         }    
18     printf("%d",f[c]);
19     return 0;
20 } 

 

posted @ 2019-01-24 13:13  宇興  阅读(144)  评论(0编辑  收藏  举报