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 }

 

你可能感兴趣的:(USACO)