poj 3624 Charm Bracelet

来源:互联网 发布:js 设置控件不可用 编辑:程序博客网 时间:2024/04/30 09:42

纪念一下理解第一道dp了。。

#include<stdio.h>#include<string.h>int v[3500];int w[3500];int dp[35000];int max(int g,int h){    return g<h?h:g;}int main(){    int n,W;    scanf("%d%d",&n,&W);    int i;    for(i=1;i<=n;i++)    {        scanf("%d%d",&w[i],&v[i]);    }    memset(dp,0,sizeof(0));    /*for(i=1;i<=W;i++)    {        for(int j=1;j<=n;j++)            if(i>=w[j])            dp[i]=max(dp[i],dp[i-w[j]]+v[j]);    }*///这是我首先想到的做法,但是它无法标记东西是否放入,所以,就有了下面的方式,东西就不会重复放入了。。    for(i=1;i<=n;i++)    {        for(int j=W;j>=w[i];j--)//j为何从大到小呢?也是为了防止东西重复放入啦。。        {            dp[j]=max(dp[j],dp[j-w[i]]+v[i]);        }    }    printf("%d\n",dp[W]);    return 0;}
0 0
原创粉丝点击