202401 卓越学院转专业-上机测试

01 一起生日

杭州电子科技大学附属小学有个优秀的传统,每隔一段时间,会给班里的近期过生日的同学举办一场生日 Party!老师会给出一个生日起止日期来确定生日 Party 的小寿星。

输入格式:

输入包含多组测试数据。

每组数据第一行,包括一个正整数 N(0 <= N <= 40),表示某个班的学生人数,接下来有 N 行数据,每行包含一个同学的姓名,以及出生年、月、日。

每组数据的最后一行,包括 4 个正整数 m1、d1、m2、d2,分别表示生日 Party 的小寿星生日起止月和日(包含),其中 m1 <= m2。

输出格式:

每组数据输出一行小寿星的名单(按照原名单的次序),每个名字后面跟一个空格。

输入样例:

5
Tom 2009 10 15
Kate 2010 7 20
David 2010 6 30
Kevin 2009 7 3
Sarah 2010 3 8
7 1 7 30

输出样例:

Kate Kevin 

02 素数输出

给定一个正整数 N,请输出小于等于 N 的素数个数。

输入格式:

输入包含多组测试数据,每组数据占一行,包括一个正整数 N(2<=N<=100000)。

输出格式:

对于每组数据给定的 N,请输出一个正整数,表示小于等于 N 的素数个数,每组输出占一行。

输入样例:

10
20

输出样例:

4
8

03 多级排序

说到排序,我们都知道这是编程人员必备的知识,更不用说信奥了。

朱逸天,丁爸编程培训班的首期学员,尽管0基础开始,但是进步很大,已经熟练掌握了各种排序的实现。

现在,朱逸天专门准备了这么一个题目,想测试一下同班同学的你,看看你是否也熟练掌握了排序。

假设丁爸信奥培训班共有N(N<100)名同学,已知各位同学的详细信息(姓名,年龄,分数),现在请对培训班的全体同学做一个排序。

排序的规则要求如下:

1、首先按照分数从高到低进行排序;

2、如果分数相同,则年龄小的排名靠前;

3、如果依然不能区分,再按照姓名的字典序排列;

考验你的时候到了,你是否能像朱逸天一样熟练掌握排序呢?

输入格式:

输入包含多组测试用例;

每组数据首先是一个正整数N,表示培训班有N位同学,每位同学的信息占一行,依次是姓名Name、年龄Age和分数Score。

其中,姓名Name是长度不超过10的无空格字符串,年龄Age是不大于20的正整数,分数Score是不超过100的浮点数。

输出格式:

请输出排序后的全班同学信息,其中,分数保留2位小数。

格式参见样例。

输入样例:

6
jaa 18 99.5
bbb 19 100
kcc 19 99
tdd 20 100
abc 18 100
see 19 100

输出样例:

abc 18 100.00
bbb 19 100.00
see 19 100.00
tdd 20 100.00
jaa 18 99.50
kcc 19 99.00

04 超级密码

上次设计的“高级密码”被你们破解了,一丁小朋友很不服气!

现在,他又设计了一套更加复杂的密码,称之为“超级密码”。

说实话,这套所谓的“超级密码”其实也并不难:

对于一个给定的字符串,你只要提取其中的数字,然后连在一起构成一个整数,再乘以刘一丁小朋友的幸运数字513,就是解密后的结果了~

比如,字符串“ads2d4,122”,提取后的整数是24122,然后乘以513,就能得到解密后的结果:12374586。

注:题目保证解密后的结果在32位无符号整数范围。

输入格式:

输入首先包括一个正整数N,表示有N组测试用例。

每组数据占一行,包含一个长度不超过30的字符串。

输出格式:

请根据题目要求输出解密后的结果,每组数据输出一行。

输入样例:

2
ads2d4,122
0023asdf2AA90

输出样例:

12374586
11947770

05 别踩白块

有一个铺满了矩形地砖的房间,地砖有黑色和白色两种。你现在站在一块黑色的地砖上面,从这块地砖开始,每次你可以选择向相邻的四块地砖走一步,但是只能走到黑色地砖上面,不能走到白色的地砖上面。

请计算按照上面给出的规则,你能到达的黑色地砖数量是多少。

输入格式:

输入包含多个测试数据。

每个测试用例包含多行,

第一行包含两个整数 M, N(1 <= N, M <= 20),分别表示房间的长和宽。

接下来有 N 行,每行包含 M 个字符,每个字符代表地砖的颜色。

* '.' 代表黑色的地砖

* '#' 代表白色的地砖

* '@' 代表你的起始位置(只会出现一次)

当 M 和 N 都为 0 时,表示输入结束。

输出格式:

对于每组测试数据,请输出你能到达的黑色地砖数量(包含起始的黑色地砖)。

6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
11 9
.#.........
.#.#######.
.#.#.....#.
.#.#.###.#.
.#.#..@#.#.
.#.#####.#.
.#.......#.
.#########.
...........
11 6
..#..#..#..
..#..#..#..
..#..#..###
..#..#..#@.
..#..#..#..
..#..#..#..
7 7
..#.#..
..#.#..
###.###
...@...
###.###
..#.#..
..#.#..
0 0

输出样例:

45
59
6
13

06 机器分配

某总公司拥有设备M台,准备分给下属的N个子公司。各子公司若获得这些设备,可以为总公司赚取一定的盈利。

如何分配这M台设备才能使总公司得到的盈利最大?

请输出最大盈利值。

输入格式:

输入包含多组测试数据。

每组数据第一行为两个整数N,M,表示有N个子公司,M台设备。

接下来是一个N×M的矩阵,其中矩阵的第i行的第j列的数Aij表明第i个子公司分配j台机器的盈利。

其中:

N <= 100

M <= 100

输出格式:

请计算总公司合理分配这M台设备所获得的最大盈利。

每组数据输出一行。

输入样例:

2 3
1 2 3
2 3 4

输出样例:

4

你可能感兴趣的:(算法)