上文链接:日期问题-蓝桥杯真题 具备基础日期知识查看(c++)


包子凑数

小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。

每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。

当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼,分别能放4、5和6个包子。而顾客想买7个包子时,大叔就凑不出来了。

小明想知道一共有多少种数目是包子大叔凑不出来的。

输入


第一行包含一个整数N。(1 <= N <= 100)
以下N行每行包含一个整数Ai。(1 <= Ai <= 100)

输出


一个整数代表答案。如果凑不出的数目有无限多个,输出INF。

实例

输入:
2
4
5

输出:
6

输入:
2
4
6

输出:
INF

思路分析:

  • 由题中有4,5两种组合的包子时不能运算出来的数是奇数1,2,3,6,7,11,有4,6两种组合的包子时不能运算出来的数是所有奇数,可推得能计算出的包子数Ans = A1乘以X1+A2乘以X2+…+An乘以Xn,其结果存在R(Ai)<R(Ai,Ans)则无解即A1,A2,A3…An存在公共最大公约数不为1,则可以求得无解,其他则有解或者无穷解(线性方程组思想)。
  • 有解时:能求得的包子数Ans为Ai的倍数加到An的倍数的和。比如包子数9等于4的1倍加上5的1倍的和,包子数4等于4的1倍加上5的0倍的和。

  • 需要求解的最大包子数=Ai(max) X Ai(max) - 2 X Ai(max),比如最多有10种包子,则需要求解答到10*10-20=80才算结束求解,可以适当将求解长度开的大一点,比如本题实际需要9800,我设置了10000。
  • 注意点:为了节省运行时间空间,尽量将变量定义为全局变量。

算法展示

#include <iostream>
using namespace std;
bool BAns[10000];//最大包子数组
int An[101],n,allG;//allG最大公约数 int gcd(int a,int b)//求a,b最大公约数
{if(b==0)return a;return gcd(b,a%b);
}
int main()
{BAns[0]=true;//求解包子数 cin>>n;for(int i = 0;i<n;i++){cin>>An[i];if(i==0)allG = An[i];else allG=gcd(An[i],allG);//求解当前最大公约数 //求得包子数 for(int j =0;j<10000;j++) {if(BAns[j])BAns[j+An[i]]=true;//循环能凑得包子数为Ai的倍数到An的倍数和。 }    } if(allG!=1){cout<<"INF"<<endl;return 0;}int count=0;//输出不能凑得包子数for(int i = 0;i<10000;i++){if(!BAns[i])++count;} cout<<count<<endl;return 0;
}

下文链接:分巧克力-蓝桥杯真题 二分查找(c++实现)

包子凑数-蓝桥杯真题 线性方程组求解(c++实现)相关推荐

  1. 蓝桥杯真题2017-2021

    刷完近几年真题,感觉理解完之后,拿奖问题不大,本人这次获得2022年蓝桥杯javaB组省一,以下是历年javaB组省赛题目. 文章目录 2017年真题 一.购物单 二.纸牌三角形 三.承压计算 四.魔 ...

  2. 第五届蓝桥杯真题解析【JavaC组】

    第五届蓝桥杯真题解析[JavaC组] 业精于勤,荒于嬉:行成于思,毁于随.--韩愈 文章目录 ***第五届蓝桥杯真题解析[JavaC组]*** 前言 A:猜年龄 B:等额本金 C:猜字母 D:大衍数列 ...

  3. 蓝桥杯python省赛冲刺篇2——常用算法的详细解析及对应蓝桥杯真题:打表模拟法、递推递归法、枚举法、贪心算法、差分与前缀和

    注意:加了题目链接 目录 注意:加了题目链接 一.打表模拟法 介绍 1. 算式问题 题目描述 解析与代码演示 2. 求值 题目描述 解析与代码演示 3. 既约分数 题目描述 解析与代码演示 4. 天干 ...

  4. 第四届蓝桥杯真题解析【JavaC组】

    第四届蓝桥杯真题解析[JavaC组] 业精于勤,荒于嬉:行成于思,毁于随.--韩愈 文章目录 ***第四届蓝桥杯真题解析[JavaC组]*** 前言 A:猜年龄 B:组素数 C:马虎的算式 D:第39 ...

  5. 第八届蓝桥杯真题解析javaC组

    第八届蓝桥杯真题解析javaC组 文章目录 ***第八届蓝桥杯真题解析javaC组*** 前言 A.外星日历 B.兴趣小组 C.纸牌三角形 D.承压计算 E.杨辉三角 F.最大公共子串 G.Excel ...

  6. c语言六角填数蓝桥杯答案,六角填数(全排列)蓝桥杯真题

    六角填数(全排列)蓝桥杯真题 六角填数(全排列)蓝桥杯真题 如图所示六角形中填入1-12的数字,使每条直线上的数字和相等,图中已经填好了3个数字,请你计算*号数字是多少 蓝桥杯老套路,经常这样考全排列 ...

  7. python解答蓝桥杯真题2 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在19351936年应邀来中国清华大学讲学。。。

    python解答蓝桥杯真题2 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学... 问题描述 全排列模板: 美国数学家维纳(N. ...

  8. 【蓝桥杯真题】16天冲刺 Python

    距离比赛很快了,希望和我一起准备的PY党能更加熟练的掌握Python! 1.距离和(模拟赛填空题) 问题描述: 两个字母之间的距离定义为它们在字母表中位置的距离.例如 A和 C 的距离为 2,L 和  ...

  9. 蓝桥杯真题:三羊献瑞

    蓝桥杯真题:三羊献瑞 观查下面的加法算式: 其中相同的汉字代表相同的数字,不同的汉字代表不同的数字. 请你填写"三羊献瑞"所代表的4位数字(答案唯一),不要填写任何多余内容. 分析 ...

最新文章

  1. java sha1加密ascii码_请问下面java的Sha1加密在c#中对应要怎么写?
  2. 190空难_印度空难有确诊者罹难,22名现场搜救人员惨中招
  3. HTML DOM 事件
  4. 最近邻插值算法 python实现
  5. CODEVS 3657 括号序列
  6. 软件系统设计-13-质量属性
  7. html页面到服务器上乱码,网页乱码问题
  8. Android 获取屏幕高度、宽度
  9. Kafka Broker 总体工作流程
  10. FastDFS搭建图片服务器
  11. Gentoo Linux安装教程20220218(长期更新维护)
  12. 读取图片java_用java读取图片的三种方式
  13. 微信公众号开发者模式工作的开发
  14. 化合物相似性搜索_分子相似性的应用
  15. android重新启动_如何重新启动Android智能手机或平板电脑
  16. 李彦宏:有人弄死其他对手 自己也没好结果
  17. 如何把照片进行压缩?好用的压缩方法分享
  18. LeetCode - 1217 - 玩筹码(play-with-chips)
  19. 类似 毕克BYK354流平剂 荟研 溶剂型体系 润湿流平
  20. 电大本科计算机应用基础网考答案,中央电大本科计算机应用基础网考试题选择题及答案...

热门文章

  1. Winbox配置PPPOE的参数
  2. 传统媒体试水微信杂志 联手搭建销售新模式
  3. 数据共享中的隐私保护问题
  4. 【C语言】自定义类型:结构体,位段,枚举,联合
  5. debian虚拟机更改ip地址、主机名
  6. java xml转换word_java如何将xml类型的word文档转换为word类型的文档
  7. php直播源码,全屏无遮盖
  8. 软文投稿网站,增加外链
  9. 洛谷 P4933 大师
  10. AirDisk存宝离线怎么回事?怎么解决?