2025年复旦大学计算机保研机试真题 - PGCode考研平台

最后更新:2025-12-08

2025年复旦大学计算机保研机试真题

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

拼出fudan

题目描述

给定一个字符串 ${s}$,只包含英文字母(大小写均有)。你可以使用字符串中的字母来拼出单词 "fudan"(不区分大小写,即可以使用 'F' 或 'f' 表示 'f',以此类推)。每个字母在字符串中只能使用一次。问:最多能拼出多少个完整的 "fudan"?

输入格式

输出格式

数据范围

输入样例1

FfuUddaANNn

输出样例1

2

非日型皇后放置

题目描述

在一个 ${n \times n}$ 的国际象棋棋盘上,放置 ${m}$ 个皇后(Queen),要求满足以下所有条件:

  1. 传统皇后约束

  2. 任意两个皇后不在同一行;

  3. 任意两个皇后不在同一列;

  4. 任意两个皇后不在同一条主对角线或副对角线上(即 ${|r_1 - r_2| \neq |c_1 - c_2|}$)。

  5. 新增“非日型”约束(No "Sun" pattern)

  6. 任意两个皇后不能位于一个 ${2 \times 3}$ 或 ${3 \times 2}$ 矩形的两个对角顶点上(这类形状在中文语境中被称为“日”字形,类似“日”字的外框)。

“日”型举例(两个皇后在如下位置):

注意:这是矩形对角顶点,不是“马走日”(骑士移动)。

输入格式

输出格式

数据范围

${1 \leq n \leq 10}$,${0 \leq m \leq n}$

输入样例1

3 2

输出样例1

0

输入样例2

4 2

输出样例2

20

可达方格数查询

题目描述

给定一个 $n \times n$ 的网格区域,每个格子包含数字 0 或 1。移动规则如下:

进行 $m$ 次询问,每次询问给定一个坐标 $(x, y)$ 作为起点。对于每次询问,输出从该起点出发,能够访问到的不同方格的最大数量。

关键说明:由于可以重复经过格子,但只关心不同方格的数量(即每个格子只计数一次),因此问题等价于求包含起点的连通分量大小。连通性由移动规则定义:两个格子连通当且仅当存在一条满足移动规则的路径连接它们(不考虑路径长度)。

输入格式

输出格式

数据范围

$1 \leq n \leq 1000$,$1 \leq m \leq 10^5$

输入样例1

3 2
010
101
010
0 0
1 1

输出样例1

9
9

INTa语言解释器

题目描述

实现一个简单的编程语言解释器,用于执行INTa语言程序。该语言支持以下语句:

  1. INTa:定义一个变量a(变量名为单个字母),初始值为0

  2. a=exp:为变量a赋值,其中exp是表达式

  3. PRINTexp:输出表达式exp的计算结果

  4. IF exp...ENDIF:条件语句,如果exp的值非0,则执行IF和ENDIF之间的语句

表达式计算规则:

作用域规则:

程序执行规则:

输入格式

输出格式

数据范围

输入样例1

INTa
a=5
INTb
b=3
PRINTa+b
PRINTa-b
PRINTa*b
PRINTa/b
PRINTa&b
PRINTa^b

输出样例1

8
2
15
1
1
6

最长不下降子序列

题目描述

给定一个初始为空的动态数组,支持以下两种操作:

  1. 添加操作:在数组末尾添加一个整数

  2. 删除操作:删除数组末尾的元素

每次操作后,需要输出当前数组的最长不下降子序列(Longest Non-decreasing Subsequence,简称LNDS)的长度。

什么是不下降子序列?

操作特点:

输入格式

输出格式

数据范围

输入样例1

6
1 5
1 3
1 4
1 1
1 2
1 6

输出样例1

1
1
2
2
2
3

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