zoukankan      html  css  js  c++  java
  • 2021寒假每日一题《完全背包问题》

    完全背包问题

    题目来源:背包九讲
    时间限制:1000ms 内存限制:64mb

    题目描述

    (N) 件物品和一个容量是 (V) 的背包。每种物品都有 无限 件可用。
    (i) 件物品的体积是 (v_i),价值是 (w_i)
    求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。
    输出最大价值。

    输入格式

    第一行两个整数,(N)(V),用空格隔开,分别表示物品数量和背包容积。
    接下来有 (N) 行,每行两个整数 (v_i),(w_i),用空格隔开,分别表示第 (i) 件物品的体积和价值。

    输出格式

    输出一个整数,表示最大价值。

    数据范围

    0 < (N),(V) ≤ 1000
    0 < (v_i),(w_i) ≤ 1000

    样例输入

    4 5
    1 2
    2 4
    3 4
    4 5
    

    样例输出

    10
    

    解题思路:动态规划

    只需要将之前的《01背包问题》的第三个解法中的第二层循环反着来就可以了。

    解题代码-Java

    import java.util.*;
    
    public class Main {
        public static int N = 1010;
    
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            int n = input.nextInt();
            int v = input.nextInt();
            int[] dp = new int[N];
            for (int i = 1; i <= n; i++) {
                int vi = input.nextInt();
                int wi = input.nextInt();
                for (int j = vi; j <= v; j++) {
                    dp[j] = Math.max(dp[j], dp[j - vi] + wi);
                }
            }
            System.out.println(dp[v]);
        }
    }
    
  • 相关阅读:
    python函数
    python3基础4
    布尔值常识
    字典常用魔法方法
    字典相关常识
    元组相关常识
    列表及其魔法方法(list类中提供的方法)
    列表相关常识
    day11练习题
    字符串相关常识
  • 原文地址:https://www.cnblogs.com/hurentian/p/14304129.html
Copyright © 2011-2022 走看看