历年杭州电子科技大学计算机考研复试机试真题
在线评测:https://app2098.acapp.acwing.com.cn/
最大公约数和最小公倍数
题目描述
输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
输入格式
两个整数
输出格式
最大公约数,最小公倍数
输入样例
5 7
输出样例
1 35
year
2019
字符棱形
题目描述
输入一个整数 n 表示棱形的对角半长度,请你用*把这个棱形画出来。
输入格式
输入一个整数 n(n <= 10)。
输出格式
按题目要求输出字符棱形。
输入样例
3
输出样例
****
*********
year
2019
Aconly 时间戳
题目描述
时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数。
然而 Aconly 不喜欢这个东西,所以他制定了一种新的时间戳叫 Aconly 时间戳,它是自 2009 年 1 月 1 日(00:00:00 北京时间)以来的秒数。
例如 0 就是 2009-01-01 00:00:00 , 60 就是 2009-01-01 00:01:00。
输入格式
有多组测试数据。
每组数据一个整数 n(0<= n <=31535999),即 Aconly 时间戳。
输出格式
输出相应的北京时间。
每组数据占一行。
输入样例
0
60
10000000
31535999
输出样例
2009-01-01 00:00:00
2009-01-01 00:01:00
2009-04-26 17:46:40
2009-12-31 23:59:59
设计密码
题目描述
网上流传一句话:“常在网上飘啊,哪能不挨刀啊”。
其实要想能安安心心地上网其实也不难,学点安全知识就可以。
首先,我们就要设置一个安全的密码。
那什么样的密码才叫安全的呢?一般来说一个比较安全的密码至少应该满足下面两个条件: (1)密码长度大于等于 8,且不要超过 16。
(2)密码中的字符应该来自下面“字符类别”中四组中的至少三组。
大写字母:A,B,C…Z 小写字母:a,b,c…z 数字: 0,1,2…9 特殊符号:~, !, @ , #, $, %, ^ 给你一个密码,你的任务就是判断它是不是一个安全的密码。
输入格式
输入数据第一行包含一个数 M,接下有 M 行,每行一个密码(长度最大可能为 50),密码仅包括上面的四类字符。
输出格式
对于每个测试实例,判断这个密码是不是一个安全的密码,是的话输出 YES,否则输出 NO。
输入样例
3
a1b2c3d4
Linle@ACM
^~^@^@!%
输出样例
NO
YES
NO
逆序对
题目描述
猫猫 TOM 和小老鼠 JERRY 最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。
最近,TOM 老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中 ai>aj 且 i<j 的有序对。
知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。
输入格式
第一行,一个数 n,表示序列中有 n 个数(n < 10^5)。
第二行 n 个数,表示给定的序列。
序列中每个数字不超过 10^9。
输出格式
输出序列中逆序对的数目。
输入样例
6
5 4 2 6 3 1
输出样例
11
快速排序
题目描述
利用快速排序算法将读入的 N 个数从小到大排序后输出。
输入格式
第 1 行为一个正整数 N(N≤10^5),
第 2 行包含 N 个空格隔开的正整数 ai,为你需要进行排序的数,数据保证了 ai 不超过 10^9 。
输出格式
将给定的 N 个数从小到大输出,数之间空格隔开,行末换行且无空格。
输入样例
5
4 2 4 5 1
输出样例
1 2 4 4 5
year
019
字符串区间翻转
题目描述
小诺有一个由 0 和 1 组成的字符串
现在小诺有一次机会,可以选择一个任意的区间[L,R],将该区间内的所有字符串进行翻转(即 0->1,1->0)。
请问小诺经过一次翻转之后字符串中最多会有多少个 1?
输入格式
第一行输入一个正整数 n,表示字符串长度,n<=10^7。
接下来一行一个输入一个 01 字符串。
可能有多组测试数据输入。
输出格式
输出题目要求的答案。
输入样例
4
1001
输出样例
4
上楼梯
题目描述
N 阶楼梯上楼问题:一次可以走三阶或两阶或一阶,问有多少种上楼方式。
输入格式
输入包括一个整数 N,(1<=N<=20)。
输出格式
可能有多组测试数据,对于每组数据,
输出当楼梯阶数是 N 时的上楼方式个数。
输入样例
4
输出样例
7
year
2019
死神来了
题目描述
有一天,王小子在遨游世界时,遇到了一场自然灾害。
一个人孤独的在一个岛上,没有吃的没有喝的。
在他饥寒交迫将要死亡时,死神来了。
由于这个死神在成神之前是一个数学家,所以他有一个习惯,会和即死之人玩一个数学游戏,来决定是否将其灵魂带走。
游戏规则是死神给王小子两个整数 n(100<=n<=1000000),m(2<=m<=n),在 1~n 个数中,随机取 m 个数,问在这 m 个数中是否一定存在一个数是另一个数的倍数,是则回答“YES",否则”NO"。
如果王小子回答正确,将有再活下去的机会。
但是他很后悔以前没有好好学习数学,王小子知道你数学学得不错,请你救他一命。
输入格式
有多组测试数据,不多于 10000;
每组有两个数 n,m;
以文件结束符 EOF 为结束标志。
输出格式
输出"YES"或"NO"。
输入样例
100 80
100 20
输出样例
YES
NO
胜利大逃亡
题目描述
Ignatius 再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)……
这次魔王汲取了上次的教训,把 Ignatius 关在一个 n*m 的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。
刚开始 Ignatius 被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。
Ignatius 每分钟只能从一个坐标走到相邻四个坐标中的其中一个。
魔王每 t 分钟回地牢视察一次,若发现 Ignatius 不在原位置便把他拎回去。
经过若干次的尝试,Ignatius 已画出整个地牢的地图。
现在请你帮他计算能否再次成功逃亡。
只要在魔王下次视察之前走到出口就算离开地牢,如果魔王回来的时候刚好走到出口或还未到出口都算逃亡失败。
输入格式
每组测试数据的第一行有三个整数 n,m,t(2<=n,m<=20,t>0)。
接下来的 n 行 m 列为地牢的地图,其中包括:
. 代表路
- 代表墙
@ 代表 Ignatius 的起始位置
^ 代表地牢的出口
A-J 代表带锁的门,对应的钥匙分别为 a-j
a-j 代表钥匙,对应的门分别为 A-J
每组测试数据之间有一个空行。
输出格式
针对每组测试数据,如果可以成功逃亡,请输出需要多少分钟才能离开,如果不能则输出-1。
输入样例
4 5 17
@A.B.
a*.*.
*..*^
c..b*
4 5 16
@A.B.
a*.*.
*..*^
c..b*
输出样例
16
-1
双层汉诺塔
题目描述
3 根擎天巨柱,其中最左边的 1 号柱子上有 2*n 个圆盘,而圆盘刚好从上到下依次增大且每种尺寸的圆盘有两块,也就是说:一共有 n 种圆盘,上面的圆盘为黑色,下面的圆盘为白色(交错放置)。
1.你每次可以移动每根柱子最上方的一个圆盘,到其他柱子上
2.大的圆盘不能放在小的圆盘上面
3.你需要将 1 号柱子上的圆盘全部移动到 3 号柱子上,并使得 3 号柱上的圆盘黑白顺序和原来 1 号柱上的圆盘黑白顺序相同
输入格式
多组输入,每行输入 1 个整数 n(1<=n<=1e6)
输出格式
每行输出解开该层数圆盘问题最少需要移动圆盘的次数,结果对 998244353 取余
输入样例
1
输出样例
3
调查作弊
题目描述
学校 icpc 举办了一场选拔赛,赛后由学长人工进行代码查重,学长们非常严谨,每当一个人发现学生 a 和学生 b 的代码相似,他就会进行上报并记录下来,如果 a 和 b 的代码相似,b 和 c 的代码相似,那么也认为 a 和 c 的代码相似,而只有当上报的学生 a,b 已经被记录为相似,才会被视作抄袭,如果 a 和 b 互相抄袭,b 和 c 互相抄袭,那么也认为 a 和 c 互相抄袭。
如果几个人互相抄袭,我们称这几个人为作弊团伙,现在已经知道了每条被上传的数据,而你想知道我们学校有多少个其他的作弊团伙( 其他表示不包括自己的作弊团伙,视个人情况判断是否将答案减 1 )
输入格式
第一行输入两个数字 n 和 m(2<=n,m<=1e6),表示 gzu 的人数和上传记录的条数
接下来的 m 行每行输入两个数字 a,b(1<=a,b<=n)表示发现 a 和 b 互相抄袭
输出格式
输出一个数字,表示作弊团伙的个数
输入样例
6 7
1 2
1 3
2 3
4 5
4 5
5 6
5 6
输出样例
2