算法Case

第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
第十届蓝桥杯大赛软件类省赛
C/C++ 大学A 组
【考生须知】
考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试
题。
考试时间为4 小时。考试期间选手可浏览自己已经提交的答案,被浏览的
答案允许拷贝。时间截止后,将无法继续提交或浏览答案。
对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它
方式提交的答案无效。
试题包含“结果填空”和“程序设计”两种题型。
结果填空题:要求选手根据题目描述直接填写结果。求解方式不限。不要
求源代码。把结果填空的答案直接通过网页提交即可,不要书写多余的内容。
程序设计题:要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对于编程题目,要求选手给出的解答完全符合GNU C/C++ 标准,不能使
用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL 类库。
注意: main 函数结束必须返回0
注意: 所有依赖的函数必须明确地在源文件中#include ,不能通过
工程设置而省略常用头文件。
所有源码必须在同一文件中。调试通过后,拷贝提交。
提交时,注意选择所期望的编译器类型。
第十届蓝桥杯大赛软件类省赛1
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
试题A: 平方和
本题总分:5 分
【问题描述】
小明对数位中含有2、0、1、9 的数字很感兴趣,在1 到40 中这样的数包
括1、2、9、10 至32、39 和40,共28 个,他们的和是574,平方和是14362。
注意,平方和是指将每个数分别平方后求和。
请问,在1 到2019 中,所有这样的数的平方和是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
提示:如果你编写程序计算,发现结果是负的,请仔细检查自己的程序,
不要怀疑考场的编程软件。
试题A: 平方和2
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
试题B: 数列求值
本题总分:5 分
【问题描述】
给定数列1, 1, 1, 3, 5, 9, 17, …,从第4 项开始,每项都是前3 项的和。求
第20190324 项的最后4 位数字。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个4 位整数(提示:答案的千位不为0),在提交答案时只填写这个整数,填写
多余的内容将无法得分。
试题B: 数列求值3
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
试题C: 最大降雨量
本题总分:10 分
【问题描述】
由于沙之国长年干旱,法师小明准备施展自己的一个神秘法术来求雨。
这个法术需要用到他手中的49 张法术符,上面分别写着1 至49 这49 个
数字。法术一共持续7 周,每天小明都要使用一张法术符,法术符不能重复使
用。
每周,小明施展法术产生的能量为这周7 张法术符上数字的中位数。法术
施展完7 周后,求雨将获得成功,降雨量为7 周能量的中位数。
由于干旱太久,小明希望这次求雨的降雨量尽可能大,请大最大值是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
试题C: 最大降雨量4
第十届蓝桥杯大赛软件类省赛C/C++大学A组
试题D: 迷宫
本题总分:10 分
【问题描述】
下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可
以通行的地方。
010000
000100
001001
110000
迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这
个它的上、下、左、右四个方向之一。
对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫,
一共10 步。其中D、U、L、R 分别表示向下、向上、向左、向右走。
对于下面这个更复杂的迷宫(30 行50 列),请找出一种通过迷宫的方式,
其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。
请注意在字典序中D<L<R<U。(如果你把以下文字复制到文本文件中,请务
必检查复制的内容是否与文档中的一致。在试题目录下有一个文件maze.txt,
内容与下面的文本相同)
01010101001011001001010110010110100100001000101010
00001000100000101010010000100000001001100110100101
01111011010010001000001101001011100011000000010000
01000000001010100011010000101000001010101011001011
00011111000000101000010010100010100000101100000000
11001000110101000010101100011010011010101011110111
00011011010101001001001010000001000101001110000000
试题D: 迷宫5
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
10100000101000100110101010111110011000010000111010
00111000001010100001100010000001000101001100001001
11000110100001110010001001010101010101010001101000
00010000100100000101001010101110100010101010000101
11100100101001001000010000010101010100100100010100
00000010000000101011001111010001100000101010100011
10101010011100001000011000010110011110110100001000
10101010100001101010100101000010100000111011101001
10000000101100010000101100101101001011100000000100
10101001000000010100100001000100000100011110101001
00101001010101101001010100011010101101110000110101
11001010000100001100000010100101000001000111000010
00001000110000110101101000000100101001001000011101
10100101000101000000001110110010110101101010100001
00101000010000110101010000100010001001000100010101
10100001000110010001000010101001010101011111010010
00000100101000000110010100101001000001000000000010
11010000001001110111001001000011101001011011101000
00000110100010001000100000001000011101000000110011
10101000101000100010001111100010101001010000001000
10000010100101001010110000000100101010001011101000
00111100001000010000000110111000000001000000001011
10000001100111010111010001000110111010101101111000
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个字符串,包含四种字母D、U、L、R,在提交答案时只填写这个字符串,填
写多余的内容将无法得分。
试题D: 迷宫6
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
试题E: RSA 解密
本题总分:15 分
【问题描述】
RSA 是一种经典的加密算法。它的基本加密过程如下。
首先生成两个质数p, q,令n = p q,设d 与(p ? 1) (q ? 1) 互质,则可
找到e 使得d e 除(p ? 1) (q ? 1) 的余数为1。
n, d, e 组成了私钥,n, d 组成了公钥。
当使用公钥加密一个整数X 时(小于n),计算C = Xd mod n,则C 是加
密后的密文。
当收到密文C 时,可使用私钥解开,计算公式为X = Ce mod n。
例如,当p = 5, q = 11, d = 3 时,n = 55, e = 27。
若加密数字24,得243 mod 55 = 19。
解密数字19,得1927 mod 55 = 24。
现在你知道公钥中n = 1001733993063167141, d = 212353,同时你截获了
别人发送的密文C = 20190324,请问,原文是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
试题E: RSA 解密7
第十届蓝桥杯大赛软件类省赛C/C++大学A组
试题F: 完全二叉树的权值
时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分
【问题描述】
给定一棵包含N 个节点的完全二叉树,树上每个节点都有一个权值,按从
上到下、从左到右的顺序依次是A1, A2, AN,如下图所示:
现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点
权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。
注:根的深度是1。
【输入格式】
第一行包含一个整数N。
第二行包含N 个整数A1, A2, AN 。
【输出格式】
输出一个整数代表答案。
【样例输入】
7
1 6 5 4 3 2 1
试题F: 完全二叉树的权值8
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
【样例输出】
2
【评测用例规模与约定】
对于所有评测用例,1 N 100000,?100000 Ai 100000。
试题F: 完全二叉树的权值9
第十届蓝桥杯大赛软件类省赛C/C++大学A组
试题G: 外卖店优先级
时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分
【问题描述】
“饱了么”外卖系统中维护着N 家外卖店,编号1 N。每家外卖店都有
一个优先级,初始时(0 时刻) 优先级都为0。
每经过1 个时间单位,如果外卖店没有订单,则优先级会减少1,最低减
到0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加2。
如果某家外卖店某时刻优先级大于5,则会被系统加入优先缓存中;如果
优先级小于等于3,则会被清除出优先缓存。
给定T 时刻以内的M 条订单信息,请你计算T 时刻时有多少外卖店在优
先缓存中。
【输入格式】
第一行包含3 个整数N、M 和T。
以下M 行每行包含两个整数ts 和id,表示ts 时刻编号id 的外卖店收到
一个订单。
【输出格式】
输出一个整数代表答案。
【样例输入】
2 6 6
1 1
5 2
3 1
6 2
2 1
6 2
试题G: 外卖店优先级10
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
【样例输出】
1
【样例解释】
6 时刻时,1 号店优先级降到3,被移除出优先缓存;2 号店优先级升到6,
加入优先缓存。所以是有1 家店(2 号) 在优先缓存中。
【评测用例规模与约定】
对于80% 的评测用例,1 N; M; T 10000。
对于所有评测用例,1 N; M; T 100000,1 ts T,1 id N。
试题G: 外卖店优先级11
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
试题H: 修改数组
时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分
【问题描述】
给定一个长度为N 的数组A = [A1; A2; AN],数组中有可能有重复出现
的整数。
现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改
A2; A3; ; AN。
当修改Ai 时,小明会检查Ai 是否在A1 Ai?1 中出现过。如果出现过,则
小明会给Ai 加上1 ;如果新的Ai 仍在之前出现过,小明会持续给Ai 加1 ,直
到Ai 没有在A1 Ai?1 中出现过。
当AN 也经过上述修改之后,显然A 数组中就没有重复的整数了。
现在给定初始的A 数组,请你计算出最终的A 数组。
【输入格式】
第一行包含一个整数N。
第二行包含N 个整数A1; A2; ; AN 。
【输出格式】
输出N 个整数,依次是最终的A1; A2; ; AN。
【样例输入】
5
2 1 1 3 4
【样例输出】
2 1 3 4 5
试题H: 修改数组12
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
【评测用例规模与约定】
对于80% 的评测用例,1 N 10000。
对于所有评测用例,1 N 100000,1 Ai 1000000。
试题H: 修改数组13
第十届蓝桥杯大赛软件类省赛C/C++大学A组
试题I: 糖果
时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分
【问题描述】
糖果店的老板一共有M 种口味的糖果出售。为了方便描述,我们将M 种
口味编号1 M。
小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而
是K 颗一包整包出售。
幸好糖果包装上注明了其中K 颗糖果的口味,所以小明可以在买之前就知
道每包内的糖果口味。
给定N 包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖
果。
【输入格式】
第一行包含三个整数N、M 和K。
接下来N 行每行K 这整数T1; T2; ; TK,代表一包糖果的口味。
【输出格式】
一个整数表示答案。如果小明无法品尝所有口味,输出?1。
【样例输入】
6 5 3
1 1 2
1 2 3
1 1 3
2 3 5
5 4 2
5 1 2
试题I: 糖果14
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
【样例输出】
2
【评测用例规模与约定】
对于30% 的评测用例,1 N 20 。
对于所有评测样例,1 N 100,1 M 20,1 K 20,1 Ti M。
试题I: 糖果15
第十届蓝桥杯大赛软件类省赛C/C++大学A组
试题J: 组合数问题
时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分
【问题描述】
给n;m; k,求有多少对(i; j) 满足1 i n; 0 j min(i;m) 且Cj
i

0(mod k),k 是质数。其中Cj
i 是组合数,表示从i 个不同的数中选出j 个组成
一个集合的方案数。
【输入格式】
第一行两个数t; k,其中t 代表该测试点包含t 组询问,k 的意思与上文中
相同。
接下来t 行每行两个整数n;m,表示一组询问。
【输出格式】
输出t 行,每行一个整数表示对应的答案。由于答案可能很大,请输出答
案除以109 + 7 的余数。
【样例输入】
1 2
3 3
【样例输出】
1
【样例说明】
在所有可能的情况中,只有C1
2 = 2 是2 的倍数。
【样例输入】
2 5
试题J: 组合数问题16
第十届蓝桥杯大赛软件类省赛C/C++ 大学A 组
4 5
6 7
【样例输出】
0
7
【样例输入】
3 23
23333333 23333333
233333333 233333333
2333333333 2333333333
【样例输出】
851883128
959557926
680723120
【数据规模和约定】
对于所有评测用例,1 k 108; 1 t 105; 1 n;m 1018,且k 是质数。
评测时将使用10 个评测用例测试你的程序,每个评测用例的限制如下:
评测用例编号t n;m k
1; 2 1 2000 100
3; 4 105 2000 100
5; 6; 7 100 1018 100
8; 9; 10 105 1018 108
试题J: 组合数问题17
感谢Berlin丶 
原文:https://blog.csdn.net/qq_39072627/article/details/88876495 
算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值