zoukankan      html  css  js  c++  java
  • 算法训练 最大体积

    /*
    算法训练 最大体积  
     
    问题描述
      每个物品有一定的体积(废话),不同的物品组合,装入背包会战用一定的总体积。假如每个物品有无限件可用,那么有些体积是永远也装不出来的。为了尽量装满背包,附中的OIER想要研究一下物品不能装出的最大体积。题目保证有解,如果是有限解,保证不超过2,000,000,000
      如果是无限解,则输出0
    输入格式
      第一行一个整数n(n<=10),表示物品的件数
      第2行到N+1行: 每件物品的体积(1<= <=500)
    输出格式
      一个整数ans,表示不能用这些物品得到的最大体积。
    样例输入
    3
    10
    样例输出
    */
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            boolean dp[] = new boolean[65535 + 1000];
            int n = sc.nextInt();
            int[] a = new int[n];
            for (int i = 0; i < n; i++) {
                a[i] = sc.nextInt();
                dp[a[i]] = true;
            }
            sc.close();
    
            for (int index = 0; index <= 65535; index++) {
                if (dp[index]) {
                    for (int i = 0; i < n; i++) {
                        dp[index + a[i]] = true;
                    }
                }
            }
            int index = 0;
            for (int i = 65535; i >= 0; i--) {
                if (!dp[i]) {
                    index = i;
                    break;
                }
            }
            // 如果从末尾开始超过五百个解则有无穷个解
            boolean flag = false;
            for (int i = 65535; i >= 65535 - 500; i--) {
                if (dp[i]) {
                    flag = true;
                    break;
                }
            }
            if (flag)
                System.out.println(index);
            else
                System.out.println(0);
        }
    
    }
  • 相关阅读:
    mina之小小总结(标准的菜鸟级别,行家勿入)
    tomcat(就一句话,自己的日记性质)
    MINA转自itoyo
    java web(没含量的,百科上的)
    解决VS.NET 2008中aspx文件没有设计界面
    正则表达式教程
    [VB] Option Explicit
    sql自定義函數 包含遊標
    sql 中 null+others=?
    实用手机号、IP、身份证号、歌曲查询接口
  • 原文地址:https://www.cnblogs.com/Alpharun/p/8622965.html
Copyright © 2011-2022 走看看