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

最后更新:2025-12-08

2025年吉林大学计算机保研机试真题

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

搬水果

题目描述

在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的水果合成一堆。

每一次合并,小明可以把两堆水果合并到一起,消耗的体力等于两堆水果的重量之和。

当然经过 $n - 1$ 次合并之后,就变成一堆了。

小明在合并水果时总共消耗的体力等于每次合并所耗体力之和。

假定每个水果重量都为 $1$,并且已知水果的种类数和每种水果的数目,你的任务是设计出合并的次序方案,使小明耗费的体力最少,并输出这个最小的体力耗费。

例如有 $3$ 种水果,数目依次为 $1$,$2$,$9$。

可以先将 $1$,$2$ 堆合并,新堆数目为 $3$,耗费体力为 $3$。

然后将新堆与原先的第三堆合并得到新的堆,耗费体力为 $12$。

所以小明总共耗费体力 $= 3 + 12 = 15$,可以证明 $15$ 为最小的体力耗费值。

输入格式

每组数据输入包括两行,第一行是一个整数 $n$ $(1 \leq n \leq 10000)$,表示水果的种类数,如果 $n$ 等于 $0$ 表示输入结束,且不用处理。

第二行包含 $n$ 个整数,用空格分隔,第 $i$ 个整数 $(1 \leq a_i \leq 1000)$ 是第 $i$ 种水果的数目。

输出格式

对于每组输入,输出一个整数并换行,这个值也就是最小的体力耗费值。

输入数据保证这个值小于 $2^{31}$。

输入样例

3
9 1 2
0

输出样例

15

平方因子

题目描述

给定一个数 $n$,判定它是否有一个不为 $1$ 的完全平方数因子。

也就是说,是否存在某个 $k$,$k > 1$,使得 $k^2$ 能够整除 $n$。

输入格式

每行一个整数 $n$,$1 < n < 10000$。

输出格式

对于每一个输入的整数,在单独的一行输出结果。

如果有不为 $1$ 的完全平方数因子,则输出 Yes,否则输出 No

请注意大小写。

输入样例

15

输出样例

No

三角形的边

题目描述

给定三个已知长度的边,确定是否能够构成一个三角形。

这是一个简单的几何问题。

我们都知道,这要求两边之和大于第三边。

实际上,并不需要检验所有三种可能,只需要计算最短的两个边长之和是否大于最大的那个就可以了。

这次的问题就是:给出三个正整数,计算最小的数加上次小的数与最大的数之差。

输入格式

每一行包括三个数据 $a$, $b$, $c$,并且都是正整数,均小于 $10000$。

输出格式

对于输入的每一行,在单独一行内输出结果 $s$。

$s = \min(a, b, c) + \text{mid}(a, b, c) - \max(a, b, c)$。

上式中,$\min$ 为最小值,$\text{mid}$ 为中间值,$\max$ 为最大值。

输入样例

1 2 3

输出样例

0

怪异的洗牌

题目描述

对于一副扑克牌,我们有多种不同的洗牌方式。

一种方法是从中间某个位置分成两半,然后相交换,我们称之为移位 $shift$。

比如原来的次序是 $1$ $2$ $3$ $4$ $5$ $6$,从第 $4$ 个位置交换,结果就是 $5$ $6$ $1$ $2$ $3$ $4$。

这个方式其实就是数组的循环移位,为了多次进行这个操作,必须使用一种尽可能快的方法来编程实现。

在本题目中,还引入另外一种洗牌方式,就是把前一半(如果总数是奇数,就是 $(n-1)/2$)牌翻转过来,这种操作称之为翻转 $flip$。

在前面 $shift$ 操作的结果上进行 $flip$,结果就是 $1$ $6$ $5$ $2$ $3$ $4$。

当然,如果是实际的扑克牌,直接翻转会造成正反面混在一起的,我们就不管那么多了。

给定 $n$ 张牌,初始次序为从 $1$ 到 $n$,经过若干次的 $shift$ 和 $flip$ 操作后,结果会是什么样?

输入格式

输入包括多组测试数据,每组数据的第一行包括两个数 $n$ 和 $k$。

$n$ 表示牌的数目,$1 < n < 1000$,$k$ 表示下面要进行的操作数量。

随后的 $k$ 行,每行一个整数 $x$,$1 \leq x \leq n$,表示从第几个位置开始移位。

在每一次 $shift$ 操作后都接一个 $flip$ 操作。

输出格式

对于输入的每组数据,计算经过给定的 $k$ 次 $shift$ 和 $flip$ 操作后,各个位置的数值。

并按次序在一行上输出所有牌张的值,每个数值(不包括最后一个)后面有一个空格。

输入样例

6 1
4

输出样例

1 6 5 2 3 4

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