目录标题

  • 题目描述
  • 解题思路
  • 代码

题目描述

每个物品有一定的体积(废话),不同的物品组合,装入背包会战用一定的总体积。假如每个物品有无限件可用,那么有些体积是永远也装不出来的。为了尽量装满背包,附中的OIER想要研究一下物品不能装出的最大体积。题目保证有解,如果是有限解,保证不超过2,000,000,000
  如果是无限解,则输出0

输入
输入描述:
  第一行一个整数n(n<=10),表示物品的件数
  第2行到N+1行: 每件物品的体积(1<= <=500)
输入样例:
3
3
6
10

输出

输出描述:
  一个整数ans,表示不能用这些物品得到的最大体积。
输出样例:
17

HINT:时间限制:1.0s 内存限制:256.0MB

解题思路

首先判断输入的数的最大公因数是否为1若为1则有解,不为1则无解,剩下的就是循环遍历所有体积的结果了,因为每种物品的个数是无限的,所以直接除以物品的体积就行了,还有就是当有物品的体积为1时,所有的体积都能满足,直接输出0就行了。

代码

import java.util.Scanner;public class Main {static int n;static int temp;static int [] a = new int [11];static int [] dp = new int [100000];static int gcd(int a,int b) {if (a % b == 0)return b;elsereturn gcd(b, a % b);}public static int gcdAll(){temp = a[0];for (int i = 1; i < n; i++){temp = gcd(temp, a[i]);}return temp;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();for (int i = 0; i < n; i++) {a[i] = sc.nextInt();}for (int j:a){          //若有数为1则都能满足 最小的值为0if (j==1){System.out.println("0");}}if (gcdAll() == 1)    //如果所有数的最大公约数为1,则有解,否则为无限解{dp[0] = 1;for (int i = 0; i < n; i++){for (int j =a[i]; j <= 100000-1; j++){if (dp[j - a[i]] == 1)    //i=0时,j为goods[0]的倍数;//接下来,j为 goods[i]中物品体积值组合的结果dp[j] = 1;}}for (int i = 100000-1; i >= 0; i--)        //逆序遍历所有的体积结果,将第一个不能组合的数输出后结束{if (dp[i]==0){System.out.println(i);break;}}}else {System.out.println("NONE");}}}

Java 算法 最大体积相关推荐

  1. java算法----排序----(6)希尔排序(最小增量排序)

    1 package log; 2 3 public class Test4 { 4 5 /** 6 * java算法---希尔排序(最小增量排序) 7 * 8 * @param args 9 */ 1 ...

  2. 希尔排序的java算法_Java算法系列篇 【希尔排序】

    什么? 搞Java不会算法? 由于个人兴趣原因以及工作所需,最近了解Java算法的相关案例 及时分享 感兴趣的欢迎交流 希尔排序 描述: 基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直 ...

  3. 1.1.10 从二分查找BinarySearch开启算法学习之路---《java算法第四版》

    文章目录 0.前言 1.功能 2.示例 有两个名单tinyW.txt和tinyT.txt,将tinyT.txt名单中不在tinyW.txt的数据打印出来 ① 实现原理 ② 实现代码 ③ 性能分析 0. ...

  4. Set精讲(Java)·算法常用集合处理方法

    Set精讲(Java)·算法常用集合处理方法 Set概述 Set集合类似于一个罐子,程序可以依次把多个对象"丢进"Set集合,而Set集合通常不能记住元素的添加顺序.实际上Set就 ...

  5. 128位java_求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救!...

    求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救! 关注:157  答案:1  mip版 解决时间 2021-02-03 09:1 ...

  6. java算法:冒泡排序

    java算法:冒泡排序 冒泡排序:不断遍历文件,交换倒序的相邻元素,直到文件排好顺序.冒泡排序的主要优点是容易实现,冒泡排序通常会比选择排序.插入排序慢. 如,对EXAMPLE 字母进行排序:  E  ...

  7. 悲哀!面试现场,简单几道java算法题,90%程序员没写出来

    这两天小编逛论坛的时候发现一个很有意思的事情,就是一位互联网公司的面试官分享的,他们最近想招一批java的实习生,所以他们的面试题并不难,但是前来面试的人,却很多都挂在了几道算法题上,要么就是逻辑不严 ...

  8. 黑马程序员---java算法实现输出任意奇数维数独

    java算法实现输出任意奇数维数独 ----------- android培训.java培训.java学习型技术博客.期待与您交流! ----------- /** 该类可以打印任意维数数独,但是必须 ...

  9. JAVA算法:解救小哈(JAVA版)

    JAVA算法:解救小哈(JAVA版) 有一天,小哈一个人去玩迷宫.但是方向感不好的小哈很快就迷路了.小哼得知后便去解救无助的小哈.此时的小哼已经弄清楚了迷宫的地图,现在小哼要以最快的速度去解救小哈.那 ...

最新文章

  1. spring boot hello world 搭建
  2. Linux内核分析---进程的创建,执行与切换
  3. 飞机大战-控制玩家飞机左右移动
  4. Python的1~100奇数之和
  5. 嵌入式操作系统内核原理和开发(优先级的修改)
  6. iOS动画 三维透视投影 m34
  7. 基于deap数据集的脑电情感分析(matlab代码)
  8. 【Opencv实战】这是我见过的最强大“美颜滤镜”,代码美颜傻瓜式一键操作~(附源码)
  9. 0X0000006B导致电脑蓝屏解决
  10. php开源视频cms,迅睿PHP开源视频电影CMS系统
  11. 九度oj 题目1029:魔咒词典
  12. 光谱分析软件_利用Tracker软件分析车前草提取液的吸收光谱特征
  13. 猜拳游戏 java_用java实现一个猜拳小游戏
  14. 一定要讲给孩子们的20个小故事
  15. Setuptools(Python打包工具)
  16. 人对光波的三种特性_光的特点是什么?
  17. ftp服务器下载,绿色版ftp服务器下载,以及ftp上传工具使用指南
  18. dva自定义组件及使用方法
  19. python深度学习入门-与学习相关的技巧
  20. latex 参考文献显示问号_UESTC 本科Latex毕设论文模板 无痛上手指南

热门文章

  1. CentOS7环境下搭建ElasticSearch
  2. unix文件描述符——socket
  3. python 将数据写入csv文件
  4. python3指定目录所有excel_如何用python遍历文件夹下的所有excel文件
  5. pcp pmda mysql_linux下的mysql的安装
  6. 使用Nsight查找CE3的渲染bug
  7. LZW压缩算法解码器实现
  8. 【Processing-日常1】小圆碰撞
  9. 前端JS笔试面试题目
  10. 原声JS面向对象实现的简单轮播