码迷,mamicode.com
首页 > 其他好文 > 详细

[再做01背包] POJ 3624 Charm Bracelet

时间:2014-07-18 19:00:42      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   art   

接触动态规划的第一题是数塔问题,第二题就是01背包问题了。

当时看的懵懵懂懂,回过头来再看这道题还是非常简单的了。

用 dp[i][j] 表示取前i种物品,使它们总体积不超过j的最优取法取得的价值总和
状态转移方程:dp[i][j] = max(dp[i-1][j],dp[i-1][j-cost[i]]+weight[i])

bubuko.com,布布扣
 1 //#define LOCAL
 2 #include <iostream>
 3 #include <cstdio>
 4 #include <cstring>
 5 using namespace std;
 6 
 7 const int maxn = 13000 + 10;
 8 int dp[maxn];
 9 int cost[3500], weight[3500];
10 
11 int main(void)
12 {
13     #ifdef LOCAL
14         freopen("3624in.txt", "r", stdin);
15     #endif
16 
17     int n, v;
18     int i;
19     scanf("%d%d", &n, &v);
20     memset(dp, 0, sizeof(dp));
21     for(i = 1; i <= n; ++i)
22         scanf("%d%d", &cost[i], &weight[i]);
23 
24     int j;
25     for(i = 1; i <= n; ++i)
26         for(j = v; j >= cost[i]; --j)
27         {
28             dp[j] = max(dp[j], dp[j-cost[i]] + weight[i]);
29         }
30 
31     printf("%d\n", dp[v]);
32     return 0;
33 }
代码君

[再做01背包] POJ 3624 Charm Bracelet,布布扣,bubuko.com

[再做01背包] POJ 3624 Charm Bracelet

标签:style   blog   http   color   os   art   

原文地址:http://www.cnblogs.com/AOQNRMGYXLMV/p/3853269.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!