zoukankan      html  css  js  c++  java
  • 51 Nod 1085 01背包问题

    1085 背包问题 

    基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题

     收藏

     关注

    在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。

    Input

    第1行,2个整数,N和W中间用空格隔开。N为物品的数量,W为背包的容量。(1 <= N <= 100,1 <= W <= 10000)
    第2 - N + 1行,每行2个整数,Wi和Pi,分别是物品的体积和物品的价值。(1 <= Wi, Pi <= 10000)

    Output

    输出可以容纳的最大价值。

    Input示例

    3 6
    2 5
    3 8
    4 9

    Output示例

    14
    #include<bits/stdc++.h>
    #include<stdio.h>
    #include<iostream>
    #include<cmath>
    #include<math.h>
    #include<queue>
    #include<set>
    #include<map>
    #include<iomanip>
    #include<algorithm>
    #include<stack>
    #define inf 0x3f3f3f3f
    using namespace std;
    typedef long long ll;
    int n,W;
    int w[105];
    int p[105];
    int dp[10005];
    int main()
    {
    #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
    #endif // ONLIN
        scanf("%d%d",&n,&W);
        for(int i=1;i<=n;i++)scanf("%d%d",&w[i],&p[i]);
        for(int i=1;i<=n;i++)
        {
            for(int j=W;j>=0;j--)//为了防止一个物品被放入多次,须逆序进行
            {
                if(j>=w[i])
                dp[j]=max(dp[j],dp[j-w[i]]+p[i]);
            }
        }
        printf("%d
    ",dp[W]);
        return 0;
    }
    
  • 相关阅读:
    SVN 使用锁实现独占式签出
    浏览器console中加入jquery方便调试
    nuget安装说明
    sql server 索引优化
    Windwos Server 2016 远程桌面授权
    tomcat的安装与配置
    业务监控
    敏捷话管理团队
    一键搞定多服务器的更新
    迁移历史sql数据
  • 原文地址:https://www.cnblogs.com/linruier/p/9588293.html
Copyright © 2011-2022 走看看