您的位置:首页 > 其它

01背包(模板题) 之 poj 3624

2014-07-16 21:26 190 查看
01背包模板题。。。

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAX = 3410, max_w = 12885;
int N, M;
int W[MAX], D[MAX], dp[max_w];

int Solve() {
memset(dp, 0, sizeof(dp));
for (int i = 1; i <= N; ++i) {
for (int j = M; j >= W[i]; --j) {
dp[j] = max(dp[j], dp[j - W[i]] + D[i]);
}
}
return dp[M];
}

int main() {
//freopen("input.txt", "r", stdin);
scanf("%d %d", &N, &M);
for (int i = 1; i <= N; ++i) {
scanf("%d %d", &W[i], &D[i]);
}
printf("%d\n", Solve());
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: