试卷总分:100分


选择题 5题 10分

01 02 03 04 05


判断题 5题 10分

06 07 08 09 10


编程题 4题 80分

11 12 13 14

E1148 电子学会青少年软件编程等级考试-C++ -CIE-202606-C++六级-真题-考试

选择题 共5道

01

队列的进出规则是?

2分
登录后查看选项
02

深度优先搜索通常使用哪种数据结构实现?

2分
登录后查看选项
03

完全背包和 01 背包的核心区别是?

2分
登录后查看选项
04

利用欧几里得辗转相除法计算gcd(48,36),最大公约数结果?

2分
登录后查看选项
05

一棵二叉树的前序遍历为 1 2 4 5 3,中序遍历为 4 2 5 1 3,则后序遍历为?

2分
登录后查看选项

判断题 共5道

06

DFS 剪枝操作一定会改变最终求解答案。

2分
登录后查看选项
07

从 8 个不同元素中选 4 个的组合数为 70。

2分
登录后查看选项
08

无向图的邻接矩阵是对称矩阵。

2分
登录后查看选项
09

哈希冲突是指两个不同的关键字,通过哈希函数得到了相同的哈希地址。

2分
登录后查看选项
10

一棵有 n 个节点的树,恰好有 n-1 条边。

2分
登录后查看选项

编程题 共4道

11

删除字符串

题目描述

给定一个仅由X、Y、Z 三种字符组成的字符串 s。

只要 s 中包含连续子串 XYZ,就重复执行以下操作:删除 s 中最靠左的连续子串 XYZ。

请你输出经过所有操作后,最终得到的字符串。

输入

第一行一个字符串 s,仅由 X、Y、Z 三种字符组成。

输出

输出一行,为经过所有操作后得到的最终字符串。

数据范围

字符串长度≤10^5

输入样例1

YXXYZYZZXYZXZ

输出样例1

YZXZ

20分

C0761
登录后作答
12

空间折叠

题目描述

在古老的星尘遗迹中,地面被划分为 H 行 W 列的石板网格。每块石板要么是完好的(用. 表示),要么是破碎的(用# 表示),只有完好石板才能安全站立。你从入口 (Ch,Cw) 出发,要前往祭坛 (Dh,Dw)。入口和祭坛保证是完好石板,且位置不同。

你可以执行以下两种行动:

  • 步行:向上、下、左、右移动到相邻的完好石板。该行动 不消耗能量。
  • 空间折叠:以当前石板为中心,向 5x5 的方形区域(即行偏移 -2 到 +2,列偏移 -2到 +2)内的任意完好石板瞬间传送。该行动消耗1点能量,且不能超出遗迹边界。

请你计算从入口到祭坛所需的最少能量消耗。如果无法到达,输出 -1。

输入

第一行,两个整数 H W。

第二行,两个整数 Ch Cw。

第三行,两个整数 Dh Dw。

接下来 H 行,每行一个长度为 W 的字符串,第 i 行表示迷宫的第 i 行, 其中 . 表示道路,# 表示墙壁。

输出

输出一个整数,表示最少能量消耗次数。若无法到达,输出 -1。

数据范围

1≤H,W≤10^3

1≤Ch,Dh≤H

1≤Cw,Dw≤W

迷宫中为 # 或 .

起点(Ch,Cw)和终点(Dh,Dw)均为道路。

起点与终点不同。

输入样例1

4 4

1 1

4 4

..#.

..#.

.#..

.#..

输出样例1

1

输入样例2

4 4

1 4

4 1

.##.

####

####

.##.

输出样例2

-1

输入样例3

4 4

2 2

3 3

....

....

....

....

输出样例3

0

输入样例4

4 5

1 2

2 5

#.###

####.

#..##

#..##

输出样例4

2

20分

C0762
登录后作答
13

宝可梦

题目描述

你将按顺序遭遇 n 只宝可梦,第 i 只宝可梦的强度为 ai。

对每只宝可梦,你可以选择将其放走或击败,收益规则如下:

  • 放走宝可梦:获得0点经验值。
  • 击败强度为x的宝可梦:基础获得2点经验值;若本次是你第偶数次击败宝可梦(第2次、第4次....),将额外获得x点经验值。

请计算你能获得的最大总经验值。

输入

第一行一个正整数 n,表示宝可梦的总数量。

第二行 n 个正整数 a1,a2,…,an,依次表示每只宝可梦的强度。

输出

输出一个整数,表示可获得的最大总经验值。

数据范围

1≤n≤2×10^5,1≤ai≤10^9。

输入样例1

5

1 5 3 2 7

输出样例1

28

20分

C0763
登录后作答
14

L形硬币

题目描述

有一个 n×n 的棋盘,某些格子里有硬币(用 o 表示),其余为空(用 x 表示)。

对于每一个有硬币的格子,我们可以选择同一行中的另一个硬币和同一列中的另一个硬币(均不同于当前格子),这三个格子组成一个“L”形(当前格子为拐角)。请问一共有多少种不同的这样的三元组?

注意:不同的拐角格子视为不同的三元组;同一行或同一列中选择不同的另一个硬币也视为不同的三元组。

输入

第一行一个整数 n。

接下来 n 行,每行一个长度为 n 的字符串,由 o 和 x 组成。

输出

输出一个整数,表示可获得的最大总经验值。

数据范围

2 ≤ n ≤ 2000

输入样例1

2

oo

oo

输出样例1

4

输入样例2

3

ooo

oxx

xxo

输出样例2

4

20分

C0764
登录后作答