USACO 3.1 Score Inflation(完全背包 模版)
好搞没搞背包问题了。这个问题太模版了。
1 /* 2 ID: cuizhe 3 LANG: C++ 4 TASK: inflate 5 */ 6 #include <iostream> 7 #include <cstdio> 8 #include <cstring> 9 #include <cmath> 10 #include <algorithm> 11 using namespace std; 12 #define N 100000000 13 int c[10001],v[10001],p[10001]; 14 int main() 15 { 16 int i,j,n,m,ans; 17 freopen("inflate.in","r",stdin); 18 freopen("inflate.out","w",stdout); 19 scanf("%d%d",&m,&n); 20 for(i = 1;i <= n;i ++) 21 scanf("%d%d",&v[i],&c[i]); 22 for(i = 1;i <= n;i ++) 23 { 24 for(j = c[i];j <= m;j ++) 25 { 26 if(p[j] < p[j-c[i]]+v[i]) 27 p[j] = p[j-c[i]]+v[i]; 28 } 29 } 30 ans = 0; 31 for(i = 1;i <= m;i ++) 32 ans = max(ans,p[i]); 33 printf("%d\n",ans); 34 return 0; 35 }