蓝桥杯 PREV-27 历届试题 蚂蚁感冒

问题描述
长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。
每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。
当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。
这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。
请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。

输入格式
第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。
接着的一行是n个用空格分开的整数 Xi (-100 < Xi < 100), Xi的绝对值,表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值表示头朝左,数据中不会出现0值,也不会出现两只蚂蚁占用同一位置。其中,第一个数据代表的蚂蚁感冒了。

输出格式
要求输出1个整数,表示最后感冒蚂蚁的数目。
样例输入
3
5 -2 8

样例输出
1
样例输入
5
-10 8 -20 12 25

样例输出
3

分析:1.两只蚂蚁相遇,他们都掉头,不妨把他们看作交换身体,和各走各的效果一样的
2.记录感冒蚂蚁中, lr在左面往右爬, ll在左面往左爬, rl在右面往左爬, rr在右面往右爬的数量
3.如果感冒蚂蚁往左爬, 那lr会被该蚂蚁传染, lr会传染rl。所以,如果lr>0,会传给rl蚂蚁,答案为lr + rl,如果lr= 0那lr不会被传染,更不会传染给rl,答案为1,即最开始的一只感冒的。感冒蚂蚁往右爬同理~

蓝桥杯 ALGO-121 算法训练 猴子分苹果

问题描述
秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分。这些猴子很崇拜猴王孙悟空,所以都想给他留一些苹果。第一只猴子悄悄来到山洞,把苹果平均分成n份,把剩下的m个苹果吃了,然后藏起来一份,最后把剩下的苹果重新合在一起。这些猴子依次悄悄来到山洞,都做同样的操作,恰好每次都剩下了m个苹果。第二天,这些猴子来到山洞,把剩下的苹果分成n分,巧了,还是剩下了m个。问,原来这些猴子至少采了多少个苹果。
输入格式
两个整数,n m
输出格式
一个整数,表示原来苹果的数目
样例输入
5 1
样例输出
15621
数据规模和约定
0<m<n<9

分析:1.每次猴子分完桃子后剩下的桃子一定是分之前的(n-1)/n,所以每次分剩的桃子是n-1的倍数
2.枚举,大家最后一起吃桃子时,每人最终还有几个(从0开始,0是边界数据),保证每次分后的数量时4的倍数即可,pre = now / 4 * 5 + m,倒推n次即可~

蓝桥杯 ALGO-54 算法训练 简单加法(基本型)

问题描述
首先给出简单加法算式的定义:
如果有一个算式(i)+(i+1)+(i+2),(i>=0),在计算的过程中,没有任何一个数位出现了进位,则称其为简单的加法算式。
例如:i=3时,3+4+5=12,有一个进位,因此3+4+5不是一个简单的加法算式;又如i=112时,112+113+114=339,没有在任意数位上产生进位,故112+113+114是一个简单的加法算式。
问题:给定一个正整数n,问当i大于等于0且小于n时,有多少个算式(i)+(i+1)+(i+2)是简单加法算式。其中n<10000。

输入格式
一个整数,表示n
输出格式
一个整数,表示简单加法算式的个数
样例输入
4
样例输出
3

分析:判断位数取以10为底的对数更快更方便~

蓝桥杯 ALGO-83 算法训练 阶乘

问题描述
一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5! = 1*2*3*4*5 = 120,因此5!最右边的那个非0的数字是2。再如:7! = 5040,因此7!最右边的那个非0的数字是4。请编写一个程序,输入一个整数n(n<=100),然后输出n! 最右边的那个非0的数字是多少。
输入格式:输入只有一个整数n。
输出格式:输出只有一个整数,即n! 最右边的那个非0的数字。
输入输出样例

样例输入
6
样例输出
2

分析:1.取出每个数字因子2和5的个数,把剩余的数字乘积去最后以为循环此操作
2.最后根据2和5因子的个数判断非0的结尾~

蓝桥杯 ADV-130 算法提高 色盲的民主

问题描述
n个色盲聚在一起,讨论一块布的颜色。尽管都是色盲,却盲得各不相同。每个人都有自己的主张,争论不休。最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同意。某种颜色用字符串表示(字符串为颜色单词或词组,也就是可能有被空格隔开的两个单词组成的颜色词组),只要字符串不同,程序即判断颜色不同。现在给出这n个人所选择的颜色,输出最有可能的颜色(也就是获得投票最多的颜色),如果有多个颜色获得了最多的投票,则将它们按字典序分行全部输出。
输入格式
第一行一个正整数n,表示色盲的人数
接下来n行,每行一句话
输出格式
若干行,获得投票最多的颜色,按字典序输出
样例输入
5
red
blue
black
black
blue
样例输出
black
blue
数据规模和约定
n<=1000 颜色单词最多20个字符,只包含小写字母或者空格


对于char s[20],由于cin >> s是读取到空格处便会结束,也就是对于light red,用cin只能输入light。如果要整个输入一行,则使用cin.getline(s, 20),其中20为这一行的最大长度,也就是你的s的容量,如果容量为30,则cin.getline(s, 30)。
另外,你在cin>>n以后cin.getline(s,30)应该会得到一个空字符串,这是因为整数n后面的换行符还未被输入。 

蓝桥杯 ALGO-82 算法训练 输出米字形

根据输入的正整数n (1  米字形由一个(2n-1)*(2n-1)的矩阵组成,矩阵包含从大写A开始的n个字母
例如:n=3时,包含A,B,C;n=4时,包含A,B,C,D。
矩阵的正中间为n个字母中字典序最大的那个,从这个字母开始,沿着西北、正北、东北、正西、正东、西南、正南、东南八个方向各有一条由大写字母组成的直线。并且直线上的字母按字典序依次减小,直到大写字母A。
矩阵的其它位置用英文句号.填充。

样例输入一
3
样例输出一
A.A.A
.BBB.
ABCBA
.BBB.
A.A.A
样例输入二
4
样例输出二
A..A..A
.B.B.B.
..CCC..
ABCDCBA
..CCC..
.B.B.B.
A..A..A