蓝桥杯 算法训练 ALGO-108 最大的体积
如果是无限解,则输出0
第2行到N+1行: 每件物品的体积(1<= <=500)
3
6
10
- 如果所有的物品体积的最大公约数不为1,则为无限解;
- 如果所有的物品体积的最大公约数为1,则从无限大开始,找出第一个不能组成的数。
eg:
- #include<iostream>
- using namespace std;
- #define MAX_NUM 100000
- int n;
- int goods[]; //保存物品的体积
- int volume[MAX_NUM]; //保存物品能组成的所有体积
- int gcd(int a,int b) //求两个数的最大公约数
- {
- if (a % b == )
- return b;
- else
- return gcd(b, a % b);
- }
- int gcdAll() //求所有数的最大公约数
- {
- int temp = goods[];
- for (int i = ; i < n; i++)
- {
- temp = gcd(temp, goods[i]);
- }
- return temp;
- }
- int main()
- {
- cin >> n;
- for (int i = ; i < n; i++)
- cin >> goods[i];
- if (gcdAll() == ) //如果所有数的最大公约数为1,则有解,否则为无限解
- {
- volume[] = ;
- for (int i = ; i < n; i++)
- {
- for (int j = goods[i]; j <= MAX_NUM; j++)
- {
- if (volume[j - goods[i]] == ) //i=0时,j为goods[0]的倍数;
- //接下来,j为 goods[i]中物品体积值组合的结果
- volume[j] = ;
- }
- }
- for (int i = MAX_NUM; i >= ; i--) //逆序遍历所有的体积结果,将第一个不能组合的数输出后结束
- {
- if (!volume[i])
- {
- cout<<i;
- return ;
- }
- }
- }
- cout<<""; //无限解
- return ;
- }
蓝桥杯 算法训练 ALGO-108 最大的体积的更多相关文章
- Java 蓝桥杯 算法训练(VIP) 最大体积
最大体积 问题描述 每个物品有一定的体积(废话),不同的物品组合,装入背包会战用一定的总体积. 假如每个物品有无限件可用,那么有些体积是永远也装不出来的. 为了尽量装满背包,附中的OIER想要研究一下 ...
- Java实现 蓝桥杯 算法训练 猴子吃包子(暴力)
试题 算法训练 猴子吃包子 问题描述 从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同:肉包每秒钟吃x个:韭菜包每秒钟吃y个:没有馅的包子每秒钟吃z个:现在有x1个肉 ...
- Java实现蓝桥杯 算法训练 大等于n的最小完全平方数
试题 算法训练 大等于n的最小完全平方数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输出大等于n的最小的完全平方数. 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平 ...
- 蓝桥杯算法训练 java算法 表达式求值
问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除. 输入格式 输入一行,包含一个表达式. 输出格式 输出这个表达式的值. 样例输入 1-2+3*(4-5) 样例输出 - ...
- java实现 蓝桥杯 算法训练 Password Suspects
问题描述 在年轻的时候,我们故事中的英雄--国王 Copa--他的私人数据并不是完全安全地隐蔽.对他来说是,这不可接受的.因此,他发明了一种密码,好记又难以破解.后来,他才知道这种密码是一个长度为奇数 ...
- 蓝桥杯 算法训练 Torry的困惑(基本型)(水题,筛法求素数)
算法训练 Torry的困惑(基本型) 时间限制:1.0s 内存限制:512.0MB 问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.Torry突 ...
- 蓝桥杯 算法训练 区间k大数查询(水题)
算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...
- 蓝桥杯--算法训练 区间k大数查询
算法训练 区间k大数查询 时间限制:1.0 ...
- 蓝桥杯 算法训练 ALGO-116 最大的算式
算法训练 最大的算式 时间限制:1.0s 内存限制:256.0MB 问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量 ...
- 蓝桥杯算法训练 区间k大数查询
算法训练 区间k大数查询 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个 ...
随机推荐
- Bellman-Ford算法优化
2017-07-27 16:02:48 writer:pprp 在BEllman-Ford算法中,其最外层的循环的迭代次数为n-1,如果不存在负权回路,需要迭代的次数是远远小于n-1; 如果在某一次迭 ...
- Merge k Sorted Lists, k路归并
import java.util.Arrays; import java.util.List; import java.util.PriorityQueue; /* class ListNode { ...
- scala学习手记10 - 访问修饰符
scala的访问修饰符有如下几个特性: 如果不指定访问修饰符,scala默认为public: 较之Java,scala对protected的定义更加严格: scala可以对可见性进行细粒度的控制. s ...
- scala学习手记4 - Java基本类型对应的scala类
在Java中变量类型分为两大类:基本类型和引用类型.虽然在JDK1.5以后引入了自动装箱和自动拆箱机制,大大减少了我们在直接类型和引用类型之间的纠结,但仍有一些我们不得不考虑的问题.比如我在工作遇到的 ...
- 求中位数,O(n)的java实现【利用快速排序折半查找中位数】
查找无序数组的中位数,要想时间复杂度为O(n)其实用计数排序就能很方便地实现,在此讨论使用快速排序进行定位的方法. 1.中位数定义 2.算法思想 3.Java代码实现 4.时间复杂度分析 5.附录 中 ...
- 新东方雅思词汇---8.3、apt
新东方雅思词汇---8.3.apt 一.总结 一句话总结:本身为词根 adj. 恰当的:有…倾向的:灵敏的 本身为词根 英 [æpt] 美 [æpt] adj. 恰当的:有…倾向的:灵敏的 n. ...
- Oracle cmd乱码
查看下环境变量的设置,查看是否有变量NLS_LANG,没有则新建该变量.新建变量,设置变量名:NLS_LANG,变量值根据以上字符集确定,一般都是中文简体SIMPLIFIED CHINESE_CHIN ...
- combobox里面显示checkbox
看了http://www.cnblogs.com/yubinfeng/p/4463418.html这篇博客,我添加了部分代码,以便在最后获取combobox的value时可以拿到一个数组. HTML代 ...
- Superset 初探
安装都是借鉴的别人的,已经剪裁下来.到自己文件夹里了. 下面介绍.如何启动superset ,BI 分析工具.这是我以前的强项.应该没问题. 问题: 安装好了之后,再打开localhost 就拒绝访问 ...
- OLED取模笔记