POJ3624-Charm Bracelet

http://poj.org/problem?id=3624

背包第一题

#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 30000
using namespace std;
int weight[maxn],val[maxn],dp[maxn],N,M,i,j;
int main(void)
{
    while(scanf("%d%d",&N,&M)!=EOF)
    {
        for(i=0;i<N;i++)
           scanf("%d%d",&weight[i],&val[i]);
        memset(dp,0,sizeof(dp));
        for(i=0;i<N;i++)
           for(j=M;j>=weight[i];j--)
              dp[j]=max(dp[j],dp[j-weight[i]]+val[i]);
        printf("%d\n",dp[M]);
    }
    return 0;
}
posted @ 2012-08-31 09:47  Yogurt Shen  阅读(134)  评论(0编辑  收藏  举报