ECNU 计科机试2018
2018年计科学硕、计科专硕、计算中心的复试机试题。时长3.5小时
A: 1+1
给一个小学生都会算的 1 位数与 1 位数运算的代数式,请你求出这个表达式的值。
表达式仅含+-*三种运算。
测试用例1
Input
1+1
Output
2
测试用例2
Input
3*4
Output
12
B: LOGO
现在小学生也在学习基本的编程,课程目标是让小学生能够有基本的算法思想,并不涉 及复杂的数据和实现细节与原理。LOGO 语言就非常适合小学生学习,它通过绘图的方式来直 观的表现出如何用程序代码控制事物。例如控制台上初始给出一个点,使用语句 FD 1/1
表 示将控制台上的点 Forward 1/1 的距离,即,向当前方向移动 1 的距离,这样就画出一条线 段。语句 LT 60
则表示当前朝向向左转 60 度,接着再使用语句 FD 1/1
就画出一条与之前的 直线夹角为 120 度的一条线段,这时控制台上就有绘制出了一条折线段。
现在的任务是输出一段能绘制分形的 LOGO 语言的程序代码。
如果你还对分形不了解,下面就先介绍一下分形:
分形(Fractal) 是一个几何形状可以分成数个部分,且每一部分都(至少近似地)是整 体缩小后的形状,即具有自相似的性质。自然界中一定程度上具有分形的性质的事物有云 朵、闪电、植物根系、雪花等等。著名的科赫曲线就是一种分形,它绘制的是形态类似雪花 的图案。
以下是 0 阶到 3 阶的科赫曲线:
本题的任务只要求画出科赫曲线的一部分即可,如 0 至 3 阶是如下的画法:
要求你的程序输出 LOGO 语句,使它画出 N 阶图示的分形曲线
输入: 1 行,1 个数字 n,表示图形的阶数 \( ( 0<n \leq 10) \)
输出: 能绘制上述图形的 LOGO 程序代码
测试样例1
Input
1
Output
FD 1/3 LD 60 FD 1/3 LD 240 FD 1/3 LD 60 FD 1/3
测试样例2
Input
2
Output
FD 1/9 LD 60 FD 1/9 LD 240 FD 1/9 LD 60 FD 1/9 LD 60 FD 1/9 LD 60 FD 1/9 LD 240 FD 1/9 LD 60 FD 1/9 LD 240 FD 1/9 LD 60 FD 1/9 LD 240 FD 1/9 LD 60 FD 1/9 LD 60 FD 1/9 LD 60 FD 1/9 LD 240 FD 1/9 LD 60 FD 1/9
C: Easy Sort
给出一个含有 \( N (0<N\leq 2\times 10^5) \) 个数字的数列,请你对它排序,每个数的范围均处于 \( [-10^{50}, 10^{50}] \), 负数前有负号‘-’,正数前没有+号,所有数字均不含前导 0,数字零用一个 0 表示。
Sample Input :
5 991 -31 -1 5 -10000000000000000000000000000000000000000000000000
Sample Output:
-10000000000000000000000000000000000000000000000000 -31 -1 5 991
D: Boss’s Boss
有一个研究团队,团队分成许多研究小组,每个小组的一部分成员可能再分成小组。小 组成员只知道自己的组长是谁。现在这个团队希望有一个程序能统计一下各组长带领小组的 规模,即对每一个成员想知道自己及自己带领下的小组有多少人。
数据输入
有2 行,第 1 行有 1 个数字 N \( (0 <N \leq 2\times 10^5 )\) 代表小组的人数.
第 2 行有 N 个数\(𝑎_1, 𝑎 _ 2 , … ,𝑎 _ 𝑖, … ,𝑎 _ 𝑁\),表示第 i 个人的领导是\( 𝑎_𝑖 \)。团队的领导用 0 表示,说明没有人做他的组长。
数据保证没有环路。单独的一个成员视为 1 个人的小组。
数据输出
1 行,N 个数字,表示第 i 名成员的团队的规模
测试用例
Input
0 1 2 1 2 2
Output
6 4 1 1 1 1
E: Snake Matrix
所谓“蛇形矩阵”,是指从左上角第 1 个格子开始首先向右,到达边界时按顺时针的方向由 外圈向内逐一填充的方形矩阵。给出一个数字 N,要将 1 至N 2填入一个 N 行 N 列的蛇形矩阵。
例如当 N=4 时,蛇形矩阵为
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
N=5时 蛇形矩阵为
1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9
现在我想知道每一行的蛇形矩阵的和,希望你能通过编写程序求解。
数据输入
1行,一个数字N,表示蛇形矩阵的阶数.(\( 1 \leq N \leq 2\times 10^5 \))
数据输出
输出N行,每行一个整数,表示蛇形矩阵这一行之和
测试样例
Input
11
Output
66 457 706 845 906 921 918 885 790 601 286