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