全国首发:合肥市蜀山区2023年题目

2023 年蜀山区青少年信息学科普日活动
暨第二十二届青少年信息学小学组竞赛试题

一、题目概况

题目名称 连续字符 寻找座位 限速路段 观展排队
文件名       char       seat   road    queue
输入文件名 char.in    seat.in    road.in   queue.in
输出文件名 char.out seat.out  road.out queue.out
题目分值      100          100         100         100
运行时间限制 1s            1s           1s           1s
运行内存限制 256M     256M      256M      256M

二、注意事项

  1. 考试时间为 150 分钟。
  2. 务必看清题目,严格按照所要求的格式输入、输出。
  3. 在调试程序时请先使用题目中的示例数据,然后再自行设计多组测试数据进行调试。
  4. 每道试题包含 10 组测试数据,每组 10 分。提交程序在一道试题的所有测试点上的得分之
    和即为该题得分。每道赛题以最后成功提交的代码文件为准。
  5. 提交的代码文件以英文题目名称命名,提交其它命名方式命名的文件不会被用于代码测试,
    命名规则:
    (1)每题都规定了该题的英文名称。
    (2)程序文件和数据文件的主文件名都是该题的英文名字。
    (3)程序文件扩展名采用语言环境的默认扩展名。
    (4)数据文件都是文本文件,输入和输出文件的扩展名分别是.in 和.out。
  6. 程序应从输入文件读取数据,并严格地按照规定的输出格式将结果输出到输出文件中。输
    入数据文件和输出数据文件都与程序在同一个目录中,由于程序所在目录是不确定的,因
    此不允许在文件名中含有盘符信息和任何形式的路径信息。
  7. 选手应在指定目录下建立以准考证号命名的文件夹,在其下建立各个题目文件夹,用题目
    规定的英文名命名;完成后的源程序文件需存放在到相应题目文件夹内。
  8. 考试过程中请注意随时保存文件
第一题 连续字符

【题目描述】
为了吸引参观者,负责园博会信息化展厅建设的小明设计了一个互动节目,
参观者找到屏幕上按字典顺序连续的字符串会有礼品,礼品价值和字符长度成正
比。例如,ABC 是按字典顺序连续的字符串,而 AAB 和 ABD 都不是。屏幕上的字
符串已经将所有字符排序,现在请你找出它的最长字典顺序连续子串。这里,子
串指的是字符串的一部分,例如 D、AB、ABD 都是 ABD 的子串。

【输入说明】

第一行是 1 个整数 N,表示字符串的长度。
之后一行一个仅包括大写字母的字符串。

【输出说明】

输出按字典顺序连续的最长子串长度。

【样例 1】

输入
3
ABG
输出
2

【样例 1 说明】

子串 AB 是按字典顺序连续的,且没有比它更长的符合题意的子串。

【样例 2】

输入
5
KLMPQ
输出
3

【样例 3】

输入
18
ACDEGHIKNOPQSTUWYZ
输出
4

【样例 3 说明】

一个长度为 4 且按字典顺序连续的子串是 NOPQ。没有比它更长的符合题意的
子串。

【数据范围与约定】

对于全部数据,有1 ≤ N ≤ 26,输入串的字符不重复并且已按字典顺序排序。
测试点 1~6(共 60 分):N ≤ 5。
测试点 7~10(共 40 分):无特殊限制。

第二题 寻找座位
【题目描述】

园博会的展区面积很大,接驳不同展区间的电动车需要提前预约,参观者
凭成功预约信息才能坐车。因此发车前会进行频繁的订票/退票操作。现在有一
辆特殊电动车,里面有 N 排,每排 5 个座位,每个座位用 1 表示已预订,0 表示
未预订。小明负责安排这辆车下一趟的座位,按时间顺序收到了 M 个订票(D)
或者退票(T)信息,请你帮小明编写程序,看剩余座位是否能满足每一个要求。

【输入说明】

第一行是两个正整数 N 和 M,N 表示园博会电动车上的座位排数,M 表示系
统收到的订/退票信息。
接下来是 N 行,每行 5 个数字,表示座位是否被占用,0 表示未被占用,1
表示已经占用。
N 行座位信息后是 M 行订票/退票操作,其中 D 表示订票、T 表示退票。

【输出说明】

针对 M 个订票/退票操作,按顺序给出座位是否能满足需求的判断结果,Yes
表示可以满足要求,No 表示不能满足。

【样例】

输入
6 4
11111
11101
11011
11111
10001
10001
D 5
T 2
D 6
T 3
输出
Yes
Yes
No
Yes
【样例说明】
满足了前两个需求后,不再有足够的座位满足第三个需求。第三个需求应
该被拒绝并忽略其影响。
【数据范围与约定】
对于全部数据,有1 ≤ ≤ 1000,1 ≤ ≤ 105,1 ≤ 单次订退票数量 ≤
10000。
测试点 1~3(共 30 分):保证一开始车辆为空(没有座位被占用)。
测试点 4~10(共 70 分):无特殊限制

第三题 限速路段
【题目描述】

园博会的某路段上有 N 个路牌,相邻两个路牌之间间隔 10 千米,这些路牌
将这个路段划分为等间距的 N-1 个区间。路牌有两种类型:(1)限速,接下来的
全部区间的速度都不能超过标识值;(2)取消限速,取消最近的一个与标识值相
同的限速。其中,限速路牌用正整数表示,取消限速路牌用负整数表示,其真实
标识值等于输入数据的绝对值。例如,60 表示限速 60 的路牌,而-60 表示取消
限速 60 的路牌。
假设车辆在通过路牌的瞬间可以立即变速,那么通过此路段且不违反限速的
最短用时是多少?多个限速同时生效时,车辆的速度应不超过有效的最低限速。
本题中速度单位均为千米每小时。

【输入说明】

输入的第 1 行包含 2 个整数 N, M,依次表示路牌的数量和车辆的最高时速。
接下来 1 行 N 个整数,按顺序表示遇到的路牌。

【输出说明】

输出 1 行 1 个数,表示答案。保留两位小数输出。

【样例 1】

输入
5 100
10 -10 30 20 40
输出
1.93

【样例 1 说明】

在第 1 个区间速度 10,用时 1;第 2 个区间速度 100,用时 0.1;第 3 个区
间速度 30,用时1⁄3;第 4 个区间速度 20,用时 0.5。
赛事名称 限速路段
第 7 页 共 9 页

【样例 2】

输入
6 100
40 40 -40 30 30 30
输出
1.42

【样例 2 说明】

在第 3 个区间,取消了一个限速 40,但还有另一个限速 40 生效,因此速度
仍然为 40。

【样例 3】

输入
4 100
10 40 -40 1
输出
3.00

【样例 3 说明】

在第 3 个区间,取消了限速 40,但限速 10 仍然生效。车辆在最后一块路牌
停下,因此最后一块路牌的指示没有影响。

【样例 4】

输入
4 100
50 40 -40 1
输出
0.65

【样例 4 说明】

在第 3 个区间,取消了限速 40,但限速 50 仍然生效。

【数据范围与约定】

对于全部数据,有1 ≤ N ≤ 105,1 ≤ M ≤ 100,−100 ≤ 路牌数值 ≤ 100。
输入数据中不含有 0。
测试点 1~4(共 40 分):N ≤ 4000。
测试点 5~10(共 60 分):无特殊限制。

第四题 观展排队
【题目描述】

园博会吸引了很多参观者,为了保证参观质量,小明负责控制每个展区的人
数,暂时无法入馆的参观者需要排队等候。小明为排队的参观者设计了一个小游
戏,规则如下:
假定现在有 N 位参观者排成一列,将他们从左往右编号为 1 至 N。如果两位
参观者 i,j (i 互相看见。互相看到的两人可以获得一个徽章,请你编写程序帮小明计算:队列
中有多少对参观者可以互相看见,便于小明发放徽章。

【输入说明】

输入的第 1 行包含 1 个整数 N,表示队列中的人数。
接下来 1 行 N 个整数,第 i 个数表示参观者 i 的身高。

【输出说明】

输出 1 行 1 个整数,表示答案。

【样例 1】

输入
4
175 160 180 165
输出
4

【样例 1 说明】

(1,2) (2,3) (3,4) (1,3)可以互相看见。

【样例 2】

输入
5
10 20 30 20 10
输出
4

【样例 2 说明】

尽管参观者 3 能够看见参观者 1,但是参观者 1 不能看见参观者 3。因此(1,3)
不能互相看见。

【数据范围与约定】

对于全部数据,有1 ≤ ≤ 106,1 ≤ 身高 ≤ 106。
测试点 1~3(共 30 分): ≤ 400。
测试点 4~8(共 50 分): ≤ 4000。
测试点 9~10(共 20 分):无特殊限制。

特别鸣谢:於海洋在比赛中为我们拷贝到了题目

你可能感兴趣的:(算法,c++,青少年编程,数据结构)