• POJ 3624 Charm Bracelet(01背包 基础)


    题意: n个装饰品 容量m的背包

             每个装饰品 重wi 价值 di

            求能装的最大价值

    思路:基础01背包

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<iostream>
    #include<algorithm>
    #include<queue>
    #include<stack>
    #define mem(a,b) memset(a,b,sizeof(a))
    using namespace std;
    
    int dp[13880];
    int main()
    {
        int n,m;
        int i,j;
        int w,d;
        int maxx;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            mem(dp,-1);
            dp[0]=0;maxx=0;
            while(n--)
            {
                scanf("%d%d",&w,&d);
                for(i=m;i>=w;i--)
                {
                    if(dp[i-w]!=-1&&dp[i-w]+d>dp[i])
                    {
                        dp[i]=dp[i-w]+d;
                        if(dp[i]>maxx) maxx=dp[i];
                    }
                }
            }      
            printf("%d
    ",maxx);
        }
        return 0;
    }
    

      

  • 相关阅读:
    Git Bash关键命令
    一个不需要Log4Net的写日志的简单方法
    未知软件
    Linux
    Linux
    Linux
    Linux
    Linux
    Linux
    Linux
  • 原文地址:https://www.cnblogs.com/sola1994/p/3923650.html
Copyright © 2020-2023  润新知