• 算法训练 最大体积


    /*
    算法训练 最大体积  
     
    问题描述
      每个物品有一定的体积(废话),不同的物品组合,装入背包会战用一定的总体积。假如每个物品有无限件可用,那么有些体积是永远也装不出来的。为了尽量装满背包,附中的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);
        }
    
    }
  • 相关阅读:
    CSS高级应用参考手册
    通过ClassLoader说明容器热部署实现机制
    自定义类加载器
    zz Ubuntu常用命令大全
    设计模式之Decorator(油漆工)
    zz JNI学习(一)、JNI简介和HelloWorld示例
    类加载器的基本概念
    使用 StAX 解析 XML,第 1 部分: Streaming API for XML (StAX) 简介
    ubuntu apache mod_expires模块
    清空ubuntu 日志
  • 原文地址:https://www.cnblogs.com/Alpharun/p/8622965.html
Copyright © 2020-2023  润新知