2025年北京航空航天大学计算机保研机试真题 - PGCode考研平台

最后更新:2025-12-08

2025年北京航空航天大学计算机保研机试真题

本文整理北京航空航天大学计算机保研机试真题,并提供详细解析与代码实现,帮助同学们了解保研机试的难度与题型分布

老鼠找食物的最短路径

题目描述

老鼠在寻找食物的过程中会记录移动的方向和距离。

移动的格式为 $x-y$,其中 $x$ 表示方向($1$ 代表上,$2$ 代表下,$3$ 代表左,$4$ 代表右),$y$ 表示移动的距离。

输入以 $0-0$ 结束,表示老鼠找到了食物。

老鼠在碰到死路时会原路返回到分叉路口,探索下一个方向。

需要求解老鼠原路返回的最佳路径,最佳路径的描述是“不走回头路”,即没有折返过程。

输入格式

输入为一系列 $x-y$ 形式的移动指令,以 $0-0$ 结束。

例如:

1-1 3-1 1-1 2-1 4-2 1-2 4-1 1-1 2-1 3-1 1-1 0-0

输出格式

输出为老鼠原路返回的最佳路径,以 $x-y$ 形式表示。

例如:

2-3 3-1 2-1

学生身高分配问题

题目描述

有 $N$ 名学生在排队做核酸,编号为 $1, 2, 3, \ldots, N$,每名学生的身高都为整数。

当且仅当两名学生中间的学生身高都比他们矮时,两名学生方可看到对方。

现在,我们只知道最高的学生的身高是 $H$,剩余学生的身高未知。

但是,我们还知道这群学生之中存在着 $M$ 对关系,每对关系都指明了某两名学生 $A$ 和 $B$ 可以相互看见。

求每名学生的身高的最大可能值是多少。

输入格式

第一行输入整数 $N$, $H$, $M$,数据用空格隔开。

接下来 $M$ 行,每行两个整数 $A$ 和 $B$,代表学生 $A$ 和学生 $B$ 可以相互看见,数据用空格隔开。

输出格式

一共输出 $N$ 行数据,每行输出一个整数。

第 $i$ 行输出的整数代表第 $i$ 名学生可能的最大身高。

输入样例

9 185 5
1 3
5 3
4 3
3 7
9 8

输出样例

185
184
185
183
184
184
185
185
185

二进制序列操作

题目描述

给定一个二进制数(该二进制数的长度可能非常长),可以对该二进制数进行以下$4$种操作:

  1. 操作$ + $:将该二进制数加$ 1 $;

  2. 操作$ - $:将该二进制数减$ 1 $;

  3. 操作$ * $:将该二进制数乘$ 2 $;

  4. 操作$ / $:将该二进制数整除$ 2 $;

给定一个二进制数以及包含多个操作的操作序列,求经过运算后的二进制数。

输入格式

输入包含$3$行:

该字符串的长度为$ n $,且该字符串的每一个字符是$ 0 $或者$ 1 $。

保证输入的二进制数不包含前导零。

该字符串的长度为$ m $,且该字符串的每一个字符为$ + $、$ - $、$ * $、$ / $中的其中之一。

保证运算过程不会出现负数。

输出格式

输出仅包含$1$行:一个字符序列,表示经过运算后的二进制数(不包含前导零);如果运算结果为$0$,则输出$0$即可。

输入样例

3 4
101
+*-/

输出样例

101

数组与堆

题目描述

在各类实现堆的代码中,通常选择使用一维数组去模拟堆的结构。

如果在堆构建好之后,将这个一维数组输出,可以观察到它们有一些有趣的性质。

我们将小根堆(最小堆)构建完成后所对应的数列,称为$小根堆数列$,大根堆(最大堆)构建完成后所对应的数列称为$大根堆数列$。

堆是最重要的数据结构之一,堆的类型有$2$种:$最大堆$和$最小堆$。

对于$最大堆$,父结点的键值总是大于或等于任何一个子节点的键值。

对于$最小堆$,父结点的键值总是小于或等于任何一个子节点的键值。

通常堆的实现是用一维数组完成的。

给定一个长度为$n$的一维数组,请判断该一维数组是否实现了$最大堆$或者$最小堆$。

如果该一维数组实现了$最大堆$,请输出$Max\ heap$;如果该一维数组实现了$最小堆$,请输出$Min\ heap$;如果该一维数组既没实现$最大堆$,也没实现$最小堆$,请输出$Not\ a\ heap!$。

输入格式

第一行是一个正整数$T$,表示数据组数。

接下来有$T$组数据:每组数据包含$2$行,其中第$1$行为正整数$n$,表示一维数组的长度;第$2$行为$n$个正整数(每个正整数之间用空格隔开),表示该一维数组。

输出格式

对于每一组数据,输出$Max\ heap$、$Min\ heap$或者$Not\ a\ heap!$,每个一行。

输入样例

3
6
2 3 4 5 6 7
3
5 2 1
9
3 1 4 1 5 9 2 6 5

输出样例

Min heap
Max heap
Not a heap!

数据范围

$T \leq 20$ $2 \leq n \leq 100000$ 数据保证不会有一维数组,既实现$最大堆$,又实现$最小堆$。

蓄水池储水

题目描述

一个蓄水池由多个不同高度的平台构成。

给定一个 $n$ 行 $m$ 列的二维矩阵,表示该蓄水池由 $n \times m$ 个平台构成,同时也表明了每个平台的坐标位置。

将此二维矩阵中第 $i$ 行第 $j$ 列的数字记为 $h_{i,j}$,表示处在第 $i$ 行第 $j$ 列的平台的高度。

在该蓄水池中,所有平台之间形成的空间凹陷区域可以用于储存水,求该蓄水池总共可以储存的水量。

输入格式

第一行,2个正整数 $n$, $m$,分别表示蓄水池所对应的二维矩阵的行数和列数。

接下来 $n$ 行,每行 $m$ 个非负整数,表示该行所包含的平台的高度。

输出格式

一行,仅包含1个非负整数,表示该蓄水池总共可以储存的水量。

输入样例

5 5
0 1 1 1 1
1 0 3 3 2
0 3 0 0 2
2 3 0 0 3
1 2 3 3 2

输出样例

9

数据范围

$1 \leq n, m \leq 200$ $0 \leq h_{i,j} \leq 10^4$

完整题目及在线评测:https://www.pgcode.cn/