ECNU 计科机试2018

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注