文章目录

  • 试题 A
  • 试题 B
  • 试题 C
  • 试题 D
  • 试题 E
  • 试题 F
  • 试题 G
  • 试题 H
  • 试题 I
  • 试题 J

相关文章:

  • 2021年4月蓝桥杯(软件类)省赛:真题+解析
  • 2020年10月蓝桥杯(软件类)省赛:真题+解析
  • 2020年4月蓝桥杯(软件类)第二次模拟赛:真题+解析
  • 2020年3月蓝桥杯(软件类)第一次模拟赛:真题+解析
  • 2019年4月蓝桥杯(软件类)省赛:真题+解析

试题 A

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

解析:
(2022)9=2∗93+2∗91+2∗90=1478(2022)_9=2*9^3+2*9^1+2*9^0=1478(2022)9​=2∗93+2∗91+2∗90=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循环即可解决。

答案:

#include<iostream>
using namespace std;int main() {int a = 0, b = 0, n = 0;cin >> a >> b >> n;int day = 0;while (n > 0) {day++;if (day % 7 == 0 || day % 7 == 6) //周六、周天n -= b;elsen -= a;}cout << day << endl;return 0;
}

试题 D

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

解析:
此题可以通过模拟来推到出每棵灌木的最高长度。假设这N棵灌木分别为:n1n_1n1​、n2n_2n2​、…、nNn_NnN​。

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

答案:

#include<iostream>
using namespace std;int main() {int N = 0;cin >> N;int height = 0;for (int i = 1; i <= N; i++) {if (i <= N / 2) {height = 2 * (N - i);}else {height = 2 * (i - 1);}cout << height << endl;}return 0;
}

试题 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 + 2x10 + 1x1
对于高位到低位分别为:8、10、2进制的X进制数321,转换为10进制数位:3x10x2 + 2x2 + 1x1 = 65。

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

由于A−B=Ai−BiA-B =A_i-B_iA−B=Ai​−Bi​大小是确定的,所以关键在于使第j位的进制累计乘积∏sj\prod s_j∏sj​最小,即要使每一位的进制sjs_jsj​尽可能最小,因此:sj=max(max(A[j+1],B[j+1]),1)+1s_j=max(max(A[j+1], B[j+1]), 1)+1sj​=max(max(A[j+1],B[j+1]),1)+1

答案:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;int main() {int N = 0; //每一位数的最高进制int  Ma = 0; //A的位数int Mb = 0; //B的位数int ans = 0;cin >> N >> Ma;vector<int> A(Ma, 0);for (int i = 0; i < Ma; i++) cin >> A[i];cin >> Mb;vector<int> B(Mb, 0);for (int i = 0; i < Mb; i++) cin >> B[i];vector<int> S(Ma, 1); //第i位的进制累计乘积for (int i=Ma-2; i>=0; i--) { //A>=B,可推Ma>=MbS[i] =(max(max(A[i+1], B[i+1]), 1) + 1)*S[i+1];}for (int i = Ma - 1; i >= 0; i--){ans += S[i] * (A[i] - B[i]);}cout << ans;return 0;
}

试题 F

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

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

答案:

#include<iostream>
#define ll long long
#define N 502
using namespace std;int n, m, k;
int a[N][N], sum[N][N];
ll ans = 0;int main() {cin>>n>>m>>k;for (int i = 1; i <= n; ++i) {for (int j = 1; j <= m; ++j) {cin>>a[i][j];  //输入矩阵中每一个元素a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];  //计算前缀和}}for (int l = 1; l <= m; ++l) {for (int r = l; r <= m; ++r) {for (int i = 1, j = 1; i <= n; ++i) {while (j <= i && (a[i][r] - a[i][l - 1] - a[j - 1][r] + a[j - 1][l - 1]) > k) {++j;}if (j <= i) ans += i - j + 1;}}}cout<<ans;return 0;
}

试题 G


试题 H


试题 I


试题 J


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

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

  1. 算法笔记_110:第四届蓝桥杯软件类省赛真题(JAVA软件开发高职高专组部分习题)试题解答...

     目录 1 猜年龄 2 组素数 3 第39级台阶 4 核桃的数量 5 打印十字图 6 买不到的数目   前言:以下试题解答代码部分仅供参考,若有不当之处,还请路过的同学提醒一下~ 1 猜年龄 标题: ...

  2. 第五届蓝桥杯 软件类省赛真题 第八题:兰顿蚂蚁

    标题:兰顿蚂蚁 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中一格正方形内有一只"蚂蚁".     蚂蚁的头部 ...

  3. 【蓝桥杯省赛真题12】python数字组合 青少年组蓝桥杯python编程省赛真题解析

    目录 python数字组合 一.题目要求 1.编程实现 2.输入输出 3.评分标准

  4. 【蓝桥杯省赛真题02】python正方形内切圆 青少年组蓝桥杯python编程省赛真题解析

    目录 python绘制正方形内切圆 一.题目要求 1.编程实现 2.评分标准

  5. 2021年第十二届蓝桥杯软件类省赛python组试题及其解析。

    目录 一.卡片 二.直线 三.货物摆放 四.路径 五.回路计算 六.时间显示 七.杨辉三角 八.左孩子右兄弟 九.异或数列 十.括号序列 一.卡片 本题总分:5分 [问题描述] 小蓝有很多数字卡片,每 ...

  6. 2021年第十二届蓝桥杯软件类省赛python组

    目录 2021年第十二届蓝桥杯软件类省赛python组 1.卡片 常规做法 使用functions.Counter计数 2.直线 3.货物摆放 4.路径 5.回路计算 递归--太慢跑不出来 状态压缩D ...

  7. 蓝桥杯练习系统习题-历年真题解析1(完整版)

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-历年真题解析1 题目搜索方式:Ctrl+F--> 输入题目名称-&g ...

  8. 第八届蓝桥杯 2017年省赛真题(Java 大学C组)

    蓝桥杯 2017年省赛真题 (Java 大学C组 ) 第一题:外星日历 第二题:兴趣小组 第三题:纸牌三角形 第四题:承压计算 第五题:杨辉三角 第六题:最大公共子串 第七题:Excel地址 第八题: ...

  9. 2018第九届蓝桥杯JavaB组省赛真题及详解

    2018第九届蓝桥杯JavaB组省赛真题及详解 第一题:第几天 第二题:方格计数 第三题:复数幂 第四题:测试次数 第五题:快速排序 第六题:递增三元组 第七题:螺旋折线 第八题:日志统计 第九题:全 ...

最新文章

  1. python查看所有异常_如何获取python异常发生的实际行号?
  2. 红帽linux登陆错误,xmanager连接RedHat出错:/usr/X11R6/bin/xterm: No such file or directory
  3. P2 Matlab计算基础-《Matlab/Simulink与控制系统仿真》程序指令总结
  4. 英语语法---不定式短语详解
  5. JavaWeb完整项目要用到的专业技能
  6. 常用jquery鼠标事件和渐变动画效果
  7. 内存泄露部分检测工具
  8. JavaEE Tutorials (25) - 使用Java EE拦截器
  9. LAMP架构(LAMP介绍,mysql/mariaDB介绍,Mysql安装)
  10. ASP.NET【2】
  11. 使用draw.io更改形状编辑图表的方法
  12. 二维码扫码登陆流程设计
  13. 配置静态IP失败总结
  14. 老王的JAVA基础课:第3课 IDEA的安装和使用
  15. shell通过ping实现ip检测
  16. 科学革命——承认自己无知的革命
  17. 深入浅出监控神器Prometheus
  18. 透过细节看日本(转)
  19. 【对讲机的那点事】如何正确设置和使用对讲机的静噪功能?
  20. jmeter设置永久中文和解决查看结果树响应中文乱码问题

热门文章

  1. Python编程从入门到实践 动手试一试 代码合集
  2. 关于SPEEX和语音的研究(转载的基础上加原创)
  3. 同为双摄像头,华为P9到底比iPhone 7 plus差在哪里?
  4. 【iOS逆向与安全】iOS插件开发光速入门
  5. 版本控制之最佳实践(Git版)
  6. 轻量级神经网络MobileNet全家桶详解
  7. win10 远程桌面和向日葵远控哪个好用
  8. 最简单的验证码(利用JSP生成验证码)
  9. Oulipo---KMP
  10. AI算法+EasyCVR打造智慧城市,构建万物互联智能世界