2022年4月蓝桥杯软件类省赛:真题+解析

相关文章: 试题 A 试题A:九进制转十进制 本题总分:5分 【问题…

相关文章:

试题 A

试题A:九进制转十进制
本题总分:5分
【问题描述】
九进制正整数 ( 2022 ) 9 (2022)_9 (2022)9转换成十进制等于多少?

解析:
( 2022 ) 9 = 2 ∗ 9 3 + 2 ∗ 9 1 + 2 ∗ 9 0 = 1478 (2022)_9=2*9^3+2*9^1+2*9^0=1478 (2022)9=293+291+290=1478

答案:
1478

试题 B

试题B:顺子日期
本题总分:5分
【问题描述】
小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456等。顺子日期指的就是在日期的yyyymmdd表示法中,存在任意连续的三位数是一个顺子的日期。例如20220123就是一个顺子日期,因为它出现了一个顺子:123;而20221023则不是一个顺子日期,它一个顺子也没有。小明想知道在整个2022年份中,一共有多少个顺子日期。

解析:
此题考查的是推理能力。由于年份已经确定,因此只需判断2022mmdd是否包含顺子。

  • mm有12种取值,即01~12。符合条件的只有01、11和12,其他月份不可能出现顺子。
  • 对于2022-01-dd,只有2022-01-23符合条件
  • 对于2022-11-dd,只有2022-11-23符合条件
  • 对于2022-12-dd,只有2022-12-30和2022-12-31符合条件

答案:
所以答案是:4

试题 C

试题C:刷题统计
时间限制:1.0s内存限制:256.0MB本题总分:10分
【问题描述】
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做a道题目,周六和周日每天做b道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于n题?
【输入格式】
输入一行包含三个整数a,b和n.

解析: 本题是送分题,使用while循环即可解决。

答案:

试题 D

试题D:修剪灌木
时间限制:1.0s内存限制:256.0MB本题总分:10分
【问题描述】
爱丽丝要完成一项修剪灌木的工作。
有N棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌木,让灌木的高度变为0厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。
灌木每天从早上到傍晚会长高1厘米,而其余时间不会长高。在第一天的早晨,所有灌木的高度都是0厘米。爱丽丝想知道每棵灌木最高长到多高。

解析:
此题可以通过模拟来推到出每棵灌木的最高长度。假设这N棵灌木分别为: n 1 n_1 n1 n 2 n_2 n2、…、 n N n_N nN

  • n 1 n_1 n1为例,最高的时候是爱丽丝刚走完一个循环(即从左到右,又从右到最左端),这时候高度是2(N-1)。
  • 对于 n 2 n_2 n2,在从左到右过程中, n 2 n_2 n2 n 1 n_1 n1迟一天砍;在从右到左过程中, n 2 n_2 n2 n 1 n_1 n1早一天砍;所以 n 2 n_2 n2 n 1 n_1 n1低2厘米,因此 n 2 n_2 n2的最高高度是:2(N-2)
  • 依次类推,当i<=N/2时, n i n_i ni的最高高度是:2(N-i)
  • 当i>N/2时,与i<N/2时构成对称关系,直接模拟可得: 2 ∗ ( i − 1 ) 2 * (i – 1) 2(i1)

答案:

试题 E

试题E:X进制减法
时间限制:1.0s内存限制:256.0MB本题总分:15分
【问题描述】
进制规定了数字在数位上逢几进一。
X进制是一种很神奇的进制,因为其每一数位的进制并不固定!例如说某种X进制数,最低数位为二进制,第二数位为十进制,第三数位为八进制,则X进制数321转换为十进制数为65。
现在有两个X进制表示的整数A和B,但是其具体每一数位的进制还不确定,只知道A和B是同一进制规则,且每一数位最高为N进制,最低为二进制。请你算出A-B的结果最小可能是多少。
请注意,你需要保证A和B在X进制下都是合法的,即每一数位上的数

解析:
本次比较新颖,一部分同学可能搞不清楚X进制运算规则而放弃,其实经过简单的推理就能发现其规则:
对于普通的十进制321 = 3x10x10 + 2×10 + 1×1
对于高位到低位分别为:8、10、2进制的X进制数321,转换为10进制数位:3x10x2 + 2×2 + 1×1 = 65。

解决了X进制转10进制的问题,第二步就是如何设计每一位的进制使得A-B的值最小。A-B通过公式描述如下: A − B = ∑ ( A i − B i ) ∏ s j A-B =\sum(A_i-B_i)\prod s_j AB=(AiBi)sj

由于 A − B = A i − B i A-B =A_i-B_i AB=AiBi大小是确定的,所以关键在于使第j位的进制累计乘积 ∏ s j \prod s_j sj最小,即要使每一位的进制 s j s_j sj尽可能最小,因此: s j = m a x ( m a x ( A [ j + 1 ] , B [ j + 1 ] ) , 1 ) + 1 s_j=max(max(A[j+1], B[j+1]), 1)+1 sj=max(max(A[j+1],B[j+1]),1)+1

答案:

试题 F

试题F:统计子矩阵
时间限制:1.0s内存限制:256.0MB本题总分:15分
【问题描述】
给定一个N×M的矩阵A,请你统计有多少个子矩阵(最小1×1,最大NxM)满足子矩阵中所有数的和不超过给定的整数K?
【输入格式】
第一行包含三个整数N,M和K.
之后N行每行包含M个整数,代表矩阵A.

解析:
采用前缀和 + 双指针优化的思想,时间复杂度为: O ( n 3 ) O(n^3) O(n3)

答案:

试题 G

试题 H

试题 I

试题 J

注: 本文答案仅供参考,本文持续更新中,建议大家收藏!

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/1014.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部