2022 年 9 月青少年软编等考 C 语言二级真题解析

目录

  • T1. 统计误差范围内的数
    • 思路分析
  • T2. 全在其中
    • 思路分析
  • T3. Lab 杯
    • 思路分析
  • T4. 有趣的跳跃
    • 思路分析
  • T5. 反反复复
    • 思路分析

T1. 统计误差范围内的数

统计一个整数序列中与指定数字 m m m 误差范围小于等于 x x x 的数的个数。

时间限制:1 s
内存限制:64 MB

  • 输入
    输入包含三行:
    第一行为 n n n,表示整数序列的长度, n ≤ 100 n \le 100 n100
    第二行为 n n n 个整数,整数之间以一个空格分开;
    第三行包含 2 2 2 个整数,为指定的整数 m m m,误差范围 x x x
  • 输出
    输出为 n n n 个数中与指定数字 m m m 误差范围小于等于 x x x 的数的个数。
  • 样例输入
    5
    1 2 3 4 5
    3 1
    
  • 样例输出
    3
    
  • 提示
    样例中 2 2 2 3 3 3 4 4 4 都满足条件,故答案为 3 3 3

思路分析

此题考查一维数组的查找与统计,属于入门题。

此题与 2021 年 12 月二级 T1 类似,将给定数据存储在数组中之后,依次遍历每一个元素,检测其是否介于 m − x ∼ m + x m-x \sim m+x mxm+x 范围内,若是,则计数器变量累加 1 1 1,最后输出计数器变量的值即可。

/** Name: T1.cpp* Problem: 统计误差范围内的数* Author: Teacher Gao.* Date&Time: 2024/11/15 21:40*/#include <iostream>using namespace std;int main()
{int n, a[105], m, x;cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}cin >> m >> x;int tot = 0;for (int i = 1; i <= n; i++) {if (m - x <= a[i] && a[i] <= m + x) {tot++;}}cout << tot;return 0;
}

T2. 全在其中

你设计了一个新的加密技术,可以用一种聪明的方式在一个字符串的字符间插入随机的字符串从而对信息进行编码。由于专利问题,我们将不会详细讨论如何在原有信息中产生和插入字符串。不过,为了验证你的方法,有必要写一个程序来验证原来的信息是否全在最后的字符串之中。

给定两个字符串 s s s t t t,你需要判断 s s s 是否是 t t t 的 “子列”。也就是说,如果你去掉 t t t 中的某些字符,剩下字符将连接而成为 s s s

时间限制:1 s
内存限制:64 MB

  • 输入
    输入包括多个测试样例。每一个都是由空格分隔的由字母数字 ASCII \text{ASCII} ASCII 字符组成的两个特定的字符串 s s s t t t s s s t t t 的长度不超过 100000 100000 100000
  • 输出
    对于每个测试样例,如果 s s s t t t 的 “子列”,则输出 Yes,否则输出 No
  • 样例输入
    sequence subsequence
    person compression
    VERDI vivaVittorioEmanueleReDiItalia
    caseDoesMatter CaseDoesMatter
    
  • 样例输出
    Yes
    No
    Yes
    No
    

思路分析

此题考查字符串遍历与查找,属于入门题。

我们可以依次遍历字符串 s s s 中的每一个字符 s i s_i si,在 t t t 中查找 s i s_i si 是否存在。这里需要设置一个变量 p p p 表示每一个 s i s_i si 开始查找的位置,初始值为 0 0 0,再设置一个标记变量 f l a g flag flag 表示是否查找成功,初始值为 t r u e true true。若在 t t t 中查找到 s i s_i si,则更新下一个字符开始查找的位置,若未找到,则将 f l a g flag flag 置为 f a l s e false false 并结束查找。之后根据 f l a g flag flag 变量的值输出 YesNo

至于不定项输入,使用 while (cin >> ...) 即可。

/** Name: T2.cpp* Problem: 全在其中* Author: Teacher Gao.* Date&Time: 2024/11/15 21:46*/#include <iostream>
#include <string>using namespace std;int main()
{string s, t;while (cin >> s >> t) {int len = s.length(), p = 0;bool flag = true;for (int i = 0; i < len; i++) {int tmp = t.find(s[i], p);if (tmp == -1) {flag = false;break;}p = tmp + 1;}if (flag) cout << "Yes\n";else cout << "No\n";}return 0;
}

T3. Lab 杯

Lab \text{Lab} Lab 杯” 乒乓球赛就要在 PKU \text{PKU} PKU 的实验室之间举行了。人工智能实验室的学生都是乒乓球的狂热分子,都强烈希望代表实验室去比赛。但是有余名额限制,他们之中只能由一个人被选作代表。

为了让选择的过程公平,他们决定打一次单循环赛,每一对学生之间都打一场五局三胜的比赛。赢得最多比赛的人就将代表实验室去比赛。现在 Ava \text{Ava} Ava 手里有一份表,表里面记录了每一场比赛的比分。她应该让谁去比赛?

时间限制:1 s
内存限制:64 MB

  • 输入
    输入包含一组测试数据。
    第一行包含 n n n 2 ≤ n ≤ 100 2 ≤ n ≤ 100 2n100),表示实验室里学生的数目。
    接下来给出一个 n × n n × n n×n 矩阵 A A A。矩阵的每一个元素都是 0 0 0 1 1 1 2 2 2 3 3 3 中的一个。第 i i i 行第 j j j 列的元素 a i j a_{ij} aij 是第 i i i 个学生在和第 j j j 个学生的比赛中赢的局数。 a i j a_{ij} aij a j i a_{ji} aji i ≠ j i ≠ j i=j)正好有一个是 3 3 3,另外一个小于 3 3 3。矩阵的所有对角线元素都是 0 0 0
  • 输出
    输出赢了最多比赛的学生的编号。如果有平分,选择编号最小的。
  • 样例输入
    4
    0 0 3 2
    3 0 3 1
    2 2 0 2
    3 3 3 0
    
  • 样例输出
    4
    

思路分析

此题考查题目信息提取的能力,以及打擂台思想,属于入门题。

按行统计第 i i i 个学生获胜的场数,即 3 3 3 的个数,然后比较所有学生的获胜场数,输出获胜场数最多的学生编号即可。

/** Name: T3.cpp* Problem: Lab 杯* Author: Teacher Gao.* Date&Time: 2024/11/15 22:07*/#include <iostream>using namespace std;int main(){int n, x;int ans_id, ans_num = 0;cin >> n;for (int i = 1; i <= n; i++) {int tot = 0;for (int j = 1; j <= n; j++) {cin >> x;if (x == 3) tot++;}if (tot > ans_num) {ans_num = tot;ans_id = i;}}cout << ans_id;return 0;
}

T4. 有趣的跳跃

一个长度为 n n n n > 0 n>0 n>0)的序列中存在 “有趣的跳跃” 当且仅当相邻元素的差的绝对值经过排序后正好是从 1 1 1 ( n − 1 ) (n-1) (n1)。例如, 1 4 2 3 1\ 4\ 2\ 3 1 4 2 3 存在 “有趣的跳跃”,因为差的绝对值分别为 3 , 2 , 1 3,2,1 3,2,1。当然,任何只包含单个元素的序列一定存在 “有趣的跳跃”。你需要写一个程序判定给定序列是否存在 “有趣的跳跃”。

时间限制:1 s
内存限制:64 MB

  • 输入
    一行,第一个数是 n n n 0 < n < 3000 0 < n < 3000 0<n<3000),为序列长度,接下来有 n n n 个整数,依次为序列中各元素,各元素的绝对值均不超过 1 0 9 10^9 109
  • 输出
    一行,若该序列存在 “有趣的跳跃”,输出 Jolly,否则输出 Not jolly
  • 样例输入
    4 1 4 2 3
    
  • 样例输出
    Jolly
    

思路分析

此题考查桶的思想,属于入门题。

依次将相邻两个元素的差值 x x x 进行标记,在这个过程中,若 x ≥ n x \ge n xn 或者 x x x 已经被标记过,那么就可以确定该序列为 Not jolly。注意差值 x x x 应取绝对值,因为输入序列并不保证递增。

/** Name: T4.cpp* Problem: 有趣的跳跃* Author: Teacher Gao.* Date&Time: 2024/11/15 22:11*/#include <iostream>
#include <cmath>using namespace std;int main() {int n, a[3005] = {0}, b[3005] = {0};cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}for (int i = 2; i <= n; i++) {int x = abs(a[i] - a[i - 1]);if (x >= n || b[x]) {cout << "Not jolly";return 0;}b[x]++;}cout << "Jolly";return 0;
}

T5. 反反复复

Mo \text{Mo} Mo Larry \text{Larry} Larry 发明了一种信息加密方法。他们首先决定好列数,然后将信息(只包含字母)从上往下依次填入各列,并在末尾补充一些随机字母使其成为一个完整的字母矩阵。例如,若信息是 There's no place like home on a snowy night 并且有 5 5 5 列, Mo \text{Mo} Mo 会写成:

t o i o y
h p k n n
e l e a i
r a h s g
e c o n h
s e m o t
n l e w x

注意 Mo \text{Mo} Mo 只会填入字母,且全部是小写形式。在这个例子中, Mo \text{Mo} Mo 用字母 x 填充了信息使之成为一个完整的矩阵,当然他使用任何字母都是可以的。

Mo \text{Mo} Mo 根据这个矩阵重写信息:首先从左到右写下第一行,然后从右到左写下第二行,再从左到右写下第三行 … \dots 以此左右交替地从上到下写下各行字母,形成新的字符串。这样,例子中的信息就被加密为:toioynnkpheleaigshareconhtomesnlewx

你的工作是帮助 Larry \text{Larry} Larry 从加密后的信息中还原出原始信息(包括填充的字母)。

时间限制:1 s
内存限制:64 MB

  • 输入
    第一行包含一个整数(范围 2 2 2 20 20 20),表示使用的列数。
    第二行是一个长度不超过 200 200 200 的字符串。
  • 输出
    一行,即原始信息。
  • 样例输入
    5
    toioynnkpheleaigshareconhtomesnlewx
    
  • 样例输出
    theresnoplacelikehomeonasnowynightx
    

思路分析

此题考查字符串操作,属于入门题。

我们完全可以将这个字符串当成一个二维矩阵来处理,注意好下标变换即可。首先将字符串 s s s 中偶数行的子串进行翻转,然后按列进行输出。

/** Name: T5.cpp* Problem: 反反复复* Author: Teacher Gao.* Date&Time: 2024/11/15 22:21*/#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;int main()
{int n;char s[205];cin >> n >> s;int len = strlen(s);// 翻转偶数行子串for (int i = n; i < len; i += 2*n) {reverse(s + i, s + i + n);}// 按列输出字符for (int i = 0; i < n; i++) {for (int j = i; j < len; j += n) {cout << s[j];}}	return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/60771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssm114基于SSM框架的网上拍卖系统的设计与实现+vue(论文+源码)_kaic

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff0c;商品拍卖当然也不能排除在外&#xff0c;随着商品拍卖管理的不断成熟&#xff0c;它彻底改变了过去传统的经营管理方式&#xff0c;不仅使商品…

Transformer中的算子:其中Q,K,V就是算子

目录 Transformer中的算子 其中Q,K,V就是算子 一、数学中的算子 二、计算机科学中的算子 三、深度学习中的算子 四、称呼的由来 Transformer中的算子 其中Q,K,V就是算子 “算子”这一称呼源于其在数学、计算机科学以及深度学习等多个领域中的广泛应用和特定功能。以下是…

厦大南洋理工最新开源,一种面向户外场景的特征-几何一致性无监督点云配准方法

导读 本文提出了INTEGER&#xff0c;一种面向户外点云数据的无监督配准方法&#xff0c;通过整合高层上下文和低层几何特征信息来生成更可靠的伪标签。该方法基于教师-学生框架&#xff0c;创新性地引入特征-几何一致性挖掘&#xff08;FGCM&#xff09;模块以提高伪标签的准确…

生产环境中AI调用的优化:AI网关高价值应用实践

随着越来越多的组织将生成式AI引入生产环境&#xff0c;他们面临的挑战已经超出了初步实施的范畴。如果管理不当&#xff0c;扩展性限制、安全漏洞和性能瓶颈可能会阻碍AI应用的推广。实际问题如用户数据的安全性、固定容量限制、成本管理和延迟优化等&#xff0c;需要创新的解…

Redis 概 述 和 安 装

安 装 r e d i s: 1. 下 载 r e dis h t t p s : / / d o w n l o a d . r e d i s . i o / r e l e a s e s / 2. 将 redis 安装包拷贝到 /opt/ 目录 3. 解压 tar -zvxf redis-6.2.1.tar.gz 4. 安装gcc yum install gcc 5. 进入目录 cd redis-6.2.1 6. 编译 make …

SpringBoot 2.2.10 无法执行Test单元测试

很早之前的项目今天clone现在&#xff0c;想执行一个业务订单的检查&#xff0c;该检查的代码放在test单元测试中&#xff0c;启动也是好好的&#xff0c;当点击对应的方法执行Test的时候就报错 tip&#xff1a;已添加spring-boot-test-starter 所以本身就引入了junit5的库 No…

[项目代码] YOLOv5 铁路工人安全帽安全背心识别 [目标检测]

YOLOv5是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题&#xff0c;能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法&#xff08;如Faster R-CNN&#xff09;&#xff0c;YOLOv5具有更高的…

SIM Jacker攻击分析

简介&#xff1a; 2019年9月12日&#xff0c;AdaptiveMobile Security公布了一种针对SIM卡ST Browser的远程攻击方式&#xff1a;Simjacker。攻击者使用普通手机发送特殊构造的短信即可远程定位目标&#xff0c;危害较大 。sim卡的使用在手机上的使用非常普遍&#xff0c;所以…

【linux】centos7 换阿里云源

相关文章 【linux】CentOS 的软件源&#xff08;Repository&#xff09;学习-CSDN博客 查看yum配置文件 yum的配置文件通常位于/etc/yum.repos.d/目录下。你可以使用以下命令查看这些文件&#xff1a; ls /etc/yum.repos.d/ # 或者 ll /etc/yum.repos.d/备份当前的yum配置文…

AI 写作(八)实战项目一:自动写作助手(8/10)

一、项目背景与需求分析 &#xff08;一&#xff09;写作需求的多样化 在互联网普及的今天&#xff0c;人们对写作的需求呈现出前所未有的多样化态势。无论是学术论文、新闻报道&#xff0c;还是社交媒体的动态更新、网络小说的创作&#xff0c;都离不开高质量的写作。以学术研…

微信小程序内嵌h5页面(uniapp写的),使用uni.openLocation无法打开页面问题

1.问题 微信小程序内嵌h5页面(uniapp写的),使用uni.openLocation打开地图页面后,点击该页面下方“到这里”按钮,显示无法打开。如下图: 3.解决方案 在内嵌h5中不使用uniapp的api打开地图,而在h5页面事件处理程序中去跳转新的小程序页面,在该新页面去使用微信小程序…

SpringCloud核心组件(五)

文章目录 Gateway一. 概述简介1. Gateway 是什么2. 什么是网关?3.Gateway 和 Nginx 两个网关的区别什么是流量入口&#xff1f; 4.Gateway 能干嘛5.gateway 三大核心概念6.运行方式 二. 入门案例a.创建gateway模块&#xff0c;在pom.xml中引入依赖b.创建启动类GatewayApplicat…

1+X应急响应(网络)系统备份:

系统备份&#xff1a; 系统备份概述&#xff1a; 备份种类&#xff1a; 灾难恢复等级划分&#xff1a; 执行一次备份&#xff1a; 创建备份计划&#xff1a; 恢复备份&#xff1a;

Python学习26天

集合 # 定义集合 num {1, 2, 3, 4, 5} print(f"num&#xff1a;{num}\nnum数据类型为&#xff1a;{type(num)}") # 求集合中元素个数 print(f"num中元素个数为&#xff1a;{len(num)}") # 增加集合中的元素 num.add(6) print(num) # {1,2,3,4,5,6} # 删除…

git撤销、回退某个commit的修改

文章目录 撤销某个特定的commit方法 1&#xff1a;使用 git revert方法 2&#xff1a;使用 git rebase -i方法 3&#xff1a;使用 git reset 撤销某个特定的commit 如果你要撤销某个很早之前的 commit&#xff0c;比如 7461f745cfd58496554bd672d52efa8b1ccf0b42&#xff0c;可…

《译文》2024年11月数维杯国际大学生数学建模挑战赛题目

# 赛题正式发布 2024年第十届数维杯国际大学生数学建模挑战赛顺利开赛&#xff0c;竞赛开始时间为北京时间2024年11月15日09:00至北京时间2024年11月19日09:00&#xff0c;共计4天&#xff0c;竞赛题目正式发布&#xff0c;快来一起围观&#xff0c;你认为今年的哪个题目更具有…

LabVIEW 使用 Snippet

在 LabVIEW 中&#xff0c;Snippet&#xff08;代码片段&#xff09; 是一个非常有用的功能&#xff0c;它允许你将 一小段可重用的代码 保存为一个 图形化的代码片段&#xff0c;并能够在不同的 VI 中通过拖放来使用。 什么是 Snippet&#xff1f; Snippet 就是 LabVIEW 中的…

【苍穹外卖】学习日志-day1

目录 nginx 反向代理介绍 nginx 的优势 提高访问速度 负载均衡 保证后端服务安全 高并发静态资源 Swagger 生成 API 文档 Swagger 的使用方式 导入knife4j的maven坐标 在配置类中加入knife4j相关配置 设置静态资源映射 通过注解控制生成的接口文档 项目技术点 Token 模式 MD5 加…

Java poi 模板导出Word 带图片

Java poi 模板导出Word 带图片 重点&#xff01;&#xff01;&#xff01; 官方文档&#xff1a;https://deepoove.com/poi-tl/#_maven 最终效果 模板 其实内容都在官方文档里写的非常明白了 我这里只是抛砖引玉。 Maven依赖 <poi.version>4.1.2</poi.version>…

HMSC联合物种分布模型在群落生态学中的贝叶斯统计分析应用

联合物种分布模型&#xff08;Joint Species Distribution Modelling&#xff0c;JSDM&#xff09;在生态学领域&#xff0c;特别是群落生态学中发展最为迅速&#xff0c;它在分析和解读群落生态数据的革命性和独特视角使其受到广大国内外学者的关注。在学界不同研究团队研发出…