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

2、Charm Bracelet( poj 3624)简单0-1背包

时间:2016-08-05 15:22:45      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

题意:有n件手镯,总重量不能超过M,每个手镯有一个体重W【i】和魅力V【i】,问在不超过M的情况下能获得的魅力总和

思路:把M当背包总容量,用0-1背包写

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
#include <queue>
#include <math.h>
#include <vector>
using namespace std;
#define N 60900
#define met(a,b) memset(a,b,sizeof(a));
vector<vector<int> >Q;
int dp[N],v[N],w[N];
int main()
{
    int n,m;
    while(scanf("%d %d",&n,&m)!=EOF)
    {
        met(v,0);
        met(w,0);
        for(int i=1; i<=n; i++)
            scanf("%d %d",&w[i],&v[i]);
        met(dp,0);
        for(int i=1; i<=n; i++)
        {
            for(int j=m; j>=w[i]; j--)
                dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
        }
        printf("%d\n",dp[m]);
    }
    return 0;
}

2、Charm Bracelet( poj 3624)简单0-1背包

标签:

原文地址:http://www.cnblogs.com/jun939026567/p/5741255.html

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