您的位置:首页 > 其它

poj3624 Charm Bracelet DP 01背包问题

2014-05-12 21:26 459 查看
题目链接:http://poj.org/problem?id=3624

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

///2014.4.10
///poj3624

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int N,M;
int w[3500],c[3500];
int f[13500];

int main()
{
// freopen("in","r",stdin);
// freopen("out","w",stdout);

cin>>N>>M;
for(int i=1 ; i<=N ; i++){
cin>>c[i]>>w[i];
}
memset(f,0,sizeof(f) );
for(int i=1 ; i<=N ; i++){
for(int j=M ; j>=1 ; j--){
int a;
if( j-c[i]>=0 )
a = f[j-c[i]]+w[i];
else
a = 0;
f[j] = f[j]>a? f[j]:a;
}
}
cout<<f[M]<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: