POJ 3624 Charm Bracelet(0-1背包模板)

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

题意:给出物品的重量和价值,在重量一定的情况下价值尽可能的大。

思路:经典0-1背包。直接套用模板。

 1 #include<iostream> 
 2 #include<algorithm>
 3 using namespace std;
 4 
 5 const int maxn = 13000;
 6 
 7 int n, m;
 8 int dp[maxn];
 9 
10 int W[3405], D[3405];
11 
12 int main()
13 {
14     //freopen("D:\txt.txt", "r", stdin);
15     while (cin >> n >> m && n && m)
16     {
17         memset(dp, 0, sizeof(dp));
18         for (int i = 1; i <= n; i++)
19             cin >> W[i] >> D[i];
20 
21         for (int i = 1; i <= n; i++)
22         {
23             for (int j = m; j >= W[i]; j--)
24             {
25                 dp[j] = max(dp[j], dp[j - W[i]] + D[i]);
26             }
27         }
28         cout << dp[m] << endl;
29     }
30     return 0;
31 }
原文地址:https://www.cnblogs.com/zyb993963526/p/6361490.html