2025年粤港澳青少年信息学创新大赛 C++小学组复赛真题
剩余时间 --:--:--
问答题 共 4 题
1.

题目描述: 

小明在学习数字魔术,他有一个三位数的魔术数字。作为魔术师助手,你需要帮他重新排列这个数字的三个数位,创造出可能的最小数字。重新排列后的数字可以是一位数、两位数或三位数,但展示时不能有前导零。

 

输入格式

输入第一行包含一个整数 $n$,表示这个三位数数字(保证是一个合法的三位数,即不含前导零)。

 

输出格式

输出一行包含一个整数,表示最小的数字,并且这个数字不应该包含前导0

 

样例  1

输入

213

输出

123 

样例 2

输入

203 

输出

23

说明

对于 20\%的数据,n 的三位数字本身就是从小到大排序的。

 对于 40\%的数据,n的三位数字中不包含 0

 对于100\%的数据,n是一个三位数。

2.

题目描述:

小红收集了 n颗神奇的能量宝石,每颗宝石可能是正能量宝石(红色)或负能量宝石(蓝色)。当一颗红色宝石和一颗蓝色宝石的能量值绝对值相等时,它们可以配对产生强大的能量波。

小红想知道她有多少种不同的宝石配对方案可以产生能量波?

注意:能量值为0的宝石不能与其他能量值为非0的宝石配对,但可以与其他能量值为0的宝石配对。

输入格式

第一行包含一个整数 n,表示能量宝石数量。第二行包含 n 个整数,分别表示每个能量宝石的能量值,为了方便表示,正能量宝石的能量值用正数表示,负能量宝石的能量值用负数表示。(0能量宝石是0

输出格式

输出包含一个整数,表示小红的可选择方案数量。

样例 1

输入 1

7 

1 1 -1 -1 2 0 0

输出 1

5 

样例 2

输入 2

10 

1 2 1 -2 -1 2 -2 1 -1 2

输出 2

12

说明

样例1解释

以下用输入的顺序编号表示选择的宝石,方案为:(1, 3), (1, 4), (2, 3), (2, 4), (6, 7)

 

3.

题目描述

在魔法学院的期末考试中,学生们发现了一本被施了魔法的古籍。古籍的第一页写着: 

“只有最聪明的巫师才能解开这个谜题:给定一个初始魔法咒语 S 和魔法能量k,每次施法可以选择咒语中连续的一段非z字母进行升级(abbc,…,yz)。在最多k次施法后,能得到的字典序最大咒语是什么?

给定一个初始魔法咒语 s 和魔法能量 k,每次施法可以

    1.选择字符串中任意一段连续的字母(不能包含'z')

    2.将这段字母中每个字母变为字母表中的下一个字母

 输入格式

一行包含字符串 S 和整数 k,用空格分隔。

 

 输出格式

一行,表示经过最多 k 次施法后能得到的最大字符串。

样例 1

 输入 1

abcde 23

 输出 1

xyzzz


样例 2

输入 2

 z 1

输出 2

z

4.

题目描述 

小美参加的编程夏令营引入了新的导师分配系统:

系统配置:

m 位导师(编号 1 - m)和 n 位学生(编号 1 - n

每位学生提交两个不同的导师志愿(ai bi

分配规则(按学生编号顺序处理):

首先尝试分配第一志愿导师 ai。如果该导师未被选中,则成功分配,否则尝试第二志愿 bi

如果第二志愿导师未被选中,则成功分配 

如果两个志愿导师都已被选中,则该学生分配失败

一旦导师被分配给某个学生,就不能再分配给其他学生

对于每位学生i,需要回答:

"如果只从第i位学生开始按顺序处理到最后一位学生(i~n号学生),最终会有多少人能成功分配到导师?

特别注意:

每个查询相互独立,即考虑不同的初始状态-导师一旦被分配就不可再选

 输入格式

输入第一行是两个整数 n, m,分别表示同学数量和教练数量(教练编号为 1 - m)。

接下来 n 行,每行包含两个整数 ai, bi,含义如题。

 输出格式 

输出 n 行,每行包含一个整数表示第 i 个同学应该给出的答案。

 

样例 1

 输入 1

4 2

1 2

1 2

1 2

1 2

输出 1

2

2

2

1

说明

 样例解释

1号学生的查询:

11号导师(成功)

22号导师(成功)

34号无法选择

→答案2

2号学生的查询:

21号导师(成功) 

32号导师(成功) 

4号无法选择

→答案2

3号学生的查询:

31号导师(成功) 

42号导师(成功)

→答案2

4号学生的查询:

41号导师(成功)>答案

C++ 编辑器
输入
输出