理论卷2024年3月青少年软件编程(C\C++) · 五级

YLT C++ 5级 2024.03

满分 100 · 及格 60 · 时长 60 分钟 · 共 4 题 (编程题4)
试卷阅览 · 免费预览前 10 题 · 交卷后可查看答案与解析
1
编程题题号 #22413
分值 25

N4129 [CIE 202403 五级 T1] 逃离迷宫

题目描述

你在一个地下迷宫中找到了宝藏,但是也触发了迷宫机关,导致迷宫将在 TT 分钟后坍塌,为此你需要在 TT 分钟内逃离迷宫,你想知道你能不能逃离迷宫。
迷宫是一个边长为 mm 的正方形,其中 S 表示你所在的位置,E 表示迷宫出口,. 是可以随意走动的区域,# 是不可穿行的墙壁,每次你可以耗费 11 分钟在区域间移动(上下左右四个方向)。

输入格式

输入包含多组数组,第一行是一个整数 KK(1≤K≤101 \leq K \leq 10),表示有 KK 组数据。
接下来每组数组包含整数 mm(2≤m≤102 \leq m \leq 10)和整数 TT,mm 表示正方形迷宫的边长,TT 表示坍塌时间。
其后是一个 m×mm \times m 的字符矩阵,包含字符 S, E, . 和 #。

输出格式

每组数据输出一行,输出 YES 或者 NO,表示是否可以在坍塌之前逃离(也就是说移动次数是否可以不超过 TT)。

样例

样例 1
输入:

2
4 7
S...
###.
.#E.
..#.
3 4
S..
..#
.#E

输出:

YES
NO
2
编程题题号 #22414
分值 25

N4130 [CIE 202403 五级 T2] 密室逃脱

题目描述

小 YY 喜欢玩密室逃脱,每次游戏开始时,小 YY 会进入一个密室,她需要按照顺序解开各个隐藏线索才能成功逃脱密室。小 YY 非常聪明,解开线索对她来说并不难,但是她有一点懒,她希望在通关过程中移动次数最少。请你帮小 YY 计算她至少要移动多少次才能成功通关。
密室是 mm 行 nn 列的格子矩阵,小 YY 从左上角 (1,1)(1,1) 进入密室,密室中有三种格子:
墙,以数字 00 标记
路,以数字 11 标记
隐藏线索处,以数字 (>1)(> 1) 标记,代表该线索的难度
小 YY 需要按照难度递增的顺序解开各个线索,逃脱密室。

输入格式

第一行是一个整数 TT,表示输入包含 TT 组数据,分别是不同的游戏中小 YY 所处的密室。
对于每组数据,第一行包括两个整数:mm(1≤m≤1001 \leq m \leq 100)、nn(1≤n≤1001 \leq n \leq 100)。
接下来 mm 行,每行有 nn 个数字,第 ii 行的第 jj 个数字表示密室中第 ii 行第 jj 列的格子的类型。 题目保证进入密室处 (1,1)(1,1) 不是墙壁,线索的难度都不相同。

输出格式

对于每组数据,你需要输出一个整数,表示小 YY 在这个密室中至少要移动多少次才能成功通关。 如果小 YY 不可能解开所有线索,输出 −1-1.

样例

样例 1
输入:

2
3 3
1 3 2
1 0 4
10 6 5
3 3
1 3 2
0 0 0
10 6 5

输出:

8
-1

提示

样例解释:由于需要按难度顺序解开线索,在第一组数据中,小 YY 第一次移动到 33 时不能解密,在完成 22 之后需要回到 33。最后小 YY 解开 1010 时,她成功通关。

3
编程题题号 #22415
分值 25

N4131 [CIE 202403 五级 T3] 交易市场

题目描述

市场里面一共有 nn 种物品,有 mm 种交易途径,每个交易途径可以由 (x,y,z)(x, y, z) 表示,意思是可以用第 xx 种物品换成第 yy 种物品,并且得到 zz 元的收益(zz 均大于 00)。最开始你只有第一种物品,请问最多可以赚取多少收益。

输入格式

第一行两个正整数 nn 和 mm (n≤1000n \leq 1000,m≤4000m \leq 4000)。
接下来 mm 行,每行三个正整数 xx、yy、zz,意思是可以用第 xx 种物品换成第 yy 种物品,并且得到 zz 元的收益。(1≤x,y≤n1 \leq x, y \leq n, 1≤z≤1001 \leq z \leq 100)

输出格式

一个整数表示最大收益,如果可以赚取无穷多的收益则输出 10910^9

样例

样例 1
输入:

3 3
1 2 2
2 3 3
1 3 4

输出:

5
4
编程题题号 #22416
分值 25

N4132 [CIE 202403 五级 T4] 逆序对个数

题目描述

给定 NN 个数的序列 a1,a2,…,aNa_1, a_2, \ldots, a_N,定义一个数对 (ai,aj)(a_i, a_j) 为“重要逆序对”的充要条件为 i2aji 2a_j。求给定序列中“重要逆序对”的个数。

输入格式

本题有多个测试点,每个测试点分为两行:
第一行为序列中数字的个数 NN(1≤N≤2000001 \leq N \leq 200000),
第二行为序列 a1,a2,…,aNa_1, a_2, \ldots, a_N(0≤a≤100000000 \leq a \leq 10000000),由空格分开。N=0N=0 表示输入结束。

输出格式

每个测试点一行,输出一个整数,为给序列中“重要逆序对”的个数。

样例

样例 1
输入:

10
0 9 8 7 6 5 4 3 2 1
0

输出:

16

提示

请注意答案范围,如果使用 printf 输出 long long 类型,请用 %lld

海小星AI平台海小星AI平台

点亮AI梦想,编程未来之星。专业的青少年AI编程教育平台。

课程方向

  • AIGC人工智能
  • Scratch图形化
  • Python编程
  • C++/NOIP竞赛

联系我们

  • 北京市西城区万博苑7号楼3层F28室
  • +86-010-83553010
  • contact@seanova.cn

© 2026 海小星AI平台|京ICP备2022032747号

隐私政策服务条款