zoukankan      html  css  js  c++  java
  • 51Nod--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

    源代码:

    <span style="font-size:18px;">#include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<stack>
    #include<queue>
    #include<vector>
    #include<deque>
    #include<map>
    #include<set>
    #include<algorithm>
    #include<string>
    #include<iomanip>
    #include<cstdlib>
    #include<cmath>
    #include<sstream>
    #include<ctime>
    using namespace std;
    
    int vo[105];
    int va[105];
    int dp[10005];
    
    void OneZeroPack(int n, int v)
    {
        int i,j;
        for(i = 0; i < n; i++)
            for(j = v; j >= vo[i]; j--)
                dp[j] = max(dp[j],dp[j - vo[i]] + va[i]);
        printf("%d
    ",dp[v]);
    }
    
    int main()
    {
        int N,W;
        int i;
        scanf("%d%d",&N,&W);
        for(i = 0; i < N; i++)
        {
            scanf("%d%d",&vo[i],&va[i]);
        }
        OneZeroPack(N,W);
    	return 0;
    }
    </span>


  • 相关阅读:
    std::bind常见的坑
    valgrind使用指南
    Makefile (1) gcc基础
    准备篇(三)Makefile
    win10激活
    C语言结构体篇 结构体
    C语言字符篇(五)内存函数
    C语言字符篇(四)字符串查找函数
    C语言字符篇(三)字符串比较函数
    C语言字符篇(二)字符串处理函数
  • 原文地址:https://www.cnblogs.com/lemonbiscuit/p/7776102.html
Copyright © 2011-2022 走看看