zoukankan      html  css  js  c++  java
  • 01背包--小P寻宝记——粗心的基友

    题目描写叙述

    这对好基友他们在经历无数的艰难险阻后。最终找到了宝藏。无奈的是这一对好基友居然是一样的粗心,又忘记了带一个大一点的包包,可惜啊、、选择又出现了啊、、
    已知包的体积是v,每种宝贝仅仅有一种。宝贝的体积是pi,价值是wi。求出这对粗心的基友能够最多带走价值多少的宝藏。

    输入

    输入数据有多组。
    每组第一行有两个正整数n(n <= 10000)和v(v <= 10000)分别表示n种宝贝和包的体积。

    接下来n行,每行有两个正整数vi, wi。
    分别表示每种宝藏的体积vi (vi<=1000),价值wi(wi<=1000)。

    输出

    这对基友所能带走的最多的宝藏。

    演示样例输入

    5 10 
    1 5
    2 4
    3 3
    4 2
    5 1

    演示样例输出

    14

    ///01背包问题

    #include<stdio.h>
    #include<string.h>
    #define N 10001
    int dp[N];
    int max(int a,int b)
    {
       if(a>=b)
       return a;
       else
       return b;
    }
    int main()
    {
      int n,m,i,j;
      int w[N],p[N];
      while(~scanf("%d%d",&n,&m))
      {
          for(i=1;i<=n;i++)
          {
            scanf("%d%d",&w[i],&p[i]);
          }
          for(i=0;i<=m;i++)
          {
            dp[i]=0;
          }
          for(i=1;i<=n;i++)
          {
            for(j=m;j>=0;j--)
            {
              if(j>=w[i])
              {
               dp[j]=max(dp[j],dp[j-w[i]]+p[i]);
               }
            }
          }
          printf("%d
    ",dp[m]);
      }
      return 0;
    }
    
    



  • 相关阅读:
    PhpExcel笔记,phpExcel中文帮助手册
    mysql “group by ”与"order by"的研究--分类中最新的内容
    mysql中,主键与普通索引
    mysql性能优化-慢查询分析、优化索引和配置
    OpenSSL
    HAProxy
    Lighttpd
    Linux find/grep命令
    keepalived
    iptables
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6953257.html
Copyright © 2011-2022 走看看