Java 算法 最大体积
目录标题
- 题目描述
- 解题思路
- 代码
题目描述
每个物品有一定的体积(废话),不同的物品组合,装入背包会战用一定的总体积。假如每个物品有无限件可用,那么有些体积是永远也装不出来的。为了尽量装满背包,附中的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 算法 最大体积相关推荐
- java算法----排序----(6)希尔排序(最小增量排序)
1 package log; 2 3 public class Test4 { 4 5 /** 6 * java算法---希尔排序(最小增量排序) 7 * 8 * @param args 9 */ 1 ...
- 希尔排序的java算法_Java算法系列篇 【希尔排序】
什么? 搞Java不会算法? 由于个人兴趣原因以及工作所需,最近了解Java算法的相关案例 及时分享 感兴趣的欢迎交流 希尔排序 描述: 基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直 ...
- 1.1.10 从二分查找BinarySearch开启算法学习之路---《java算法第四版》
文章目录 0.前言 1.功能 2.示例 有两个名单tinyW.txt和tinyT.txt,将tinyT.txt名单中不在tinyW.txt的数据打印出来 ① 实现原理 ② 实现代码 ③ 性能分析 0. ...
- Set精讲(Java)·算法常用集合处理方法
Set精讲(Java)·算法常用集合处理方法 Set概述 Set集合类似于一个罐子,程序可以依次把多个对象"丢进"Set集合,而Set集合通常不能记住元素的添加顺序.实际上Set就 ...
- 128位java_求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救!...
求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救! 关注:157 答案:1 mip版 解决时间 2021-02-03 09:1 ...
- java算法:冒泡排序
java算法:冒泡排序 冒泡排序:不断遍历文件,交换倒序的相邻元素,直到文件排好顺序.冒泡排序的主要优点是容易实现,冒泡排序通常会比选择排序.插入排序慢. 如,对EXAMPLE 字母进行排序: E ...
- 悲哀!面试现场,简单几道java算法题,90%程序员没写出来
这两天小编逛论坛的时候发现一个很有意思的事情,就是一位互联网公司的面试官分享的,他们最近想招一批java的实习生,所以他们的面试题并不难,但是前来面试的人,却很多都挂在了几道算法题上,要么就是逻辑不严 ...
- 黑马程序员---java算法实现输出任意奇数维数独
java算法实现输出任意奇数维数独 ----------- android培训.java培训.java学习型技术博客.期待与您交流! ----------- /** 该类可以打印任意维数数独,但是必须 ...
- JAVA算法:解救小哈(JAVA版)
JAVA算法:解救小哈(JAVA版) 有一天,小哈一个人去玩迷宫.但是方向感不好的小哈很快就迷路了.小哼得知后便去解救无助的小哈.此时的小哼已经弄清楚了迷宫的地图,现在小哼要以最快的速度去解救小哈.那 ...
最新文章
- spring boot hello world 搭建
- Linux内核分析---进程的创建,执行与切换
- 飞机大战-控制玩家飞机左右移动
- Python的1~100奇数之和
- 嵌入式操作系统内核原理和开发(优先级的修改)
- iOS动画 三维透视投影 m34
- 基于deap数据集的脑电情感分析(matlab代码)
- 【Opencv实战】这是我见过的最强大“美颜滤镜”,代码美颜傻瓜式一键操作~(附源码)
- 0X0000006B导致电脑蓝屏解决
- php开源视频cms,迅睿PHP开源视频电影CMS系统
- 九度oj 题目1029:魔咒词典
- 光谱分析软件_利用Tracker软件分析车前草提取液的吸收光谱特征
- 猜拳游戏 java_用java实现一个猜拳小游戏
- 一定要讲给孩子们的20个小故事
- Setuptools(Python打包工具)
- 人对光波的三种特性_光的特点是什么?
- ftp服务器下载,绿色版ftp服务器下载,以及ftp上传工具使用指南
- dva自定义组件及使用方法
- python深度学习入门-与学习相关的技巧
- latex 参考文献显示问号_UESTC 本科Latex毕设论文模板 无痛上手指南