poj3624 Charm Bracelet DP 01背包问题

题目链接:http://poj.org/problem?id=3624

01背包问题,接触DP的第一题。

 1 ///2014.4.10
 2 ///poj3624
 3 
 4 #include <iostream>
 5 #include <cstdio>
 6 #include <cstring>
 7 using namespace std;
 8 
 9 int N,M;
10 int w[3500],c[3500];
11 int f[13500];
12 
13 int main()
14 {
15     // freopen("in","r",stdin);
16     // freopen("out","w",stdout);
17 
18     cin>>N>>M;
19     for(int i=1 ; i<=N ; i++){
20         cin>>c[i]>>w[i];
21     }
22     memset(f,0,sizeof(f) );
23     for(int i=1 ; i<=N ; i++){
24         for(int j=M ; j>=1 ; j--){
25             int a;
26             if( j-c[i]>=0 )
27                 a = f[j-c[i]]+w[i];
28             else
29                 a = 0;
30             f[j] = f[j]>a? f[j]:a;
31         }
32     }
33     cout<<f[M]<<endl;
34     return 0;
35 }

 

posted @ 2014-04-10 18:25  basement_boy  阅读(93)  评论(0编辑  收藏  举报