C习题集.docx
《C习题集.docx》由会员分享,可在线阅读,更多相关《C习题集.docx(11页珍藏版)》请在冰豆网上搜索。
C习题集
University
TimeLimit:
1000ms CaseTimeLimit:
1000ms MemoryLimit:
64MB
TotalSubmission:
968 SubmissionAccepted:
298
Description
在大学里,很多单词都是一词多义,偶尔在文章里还要用引申义。
这困扰Redraiment很长的时间。
他开始搜集那些单词的所有意义。
他发现了一些规律,例如
“a”能用“e”来代替,“c”能用“f”来代替……
现在他给出了字母的替换规则,如下所示,A被E替换,B被C替换,依次类推。
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ECFAJKLBDGHIVWZYMNOPQRSTUX
abcdefghijklmnopqrstuvwxyz
erwqtyghbnuiopsjkdlfazxcvm
Input
本题包括多组测试数据。
每组测试数据为一行:
为仅由字母和空格组成的字符串(空格不变)。
输入以单行“#”结束。
Output
对应每组测试数据,替换后输出它的引申义。
SampleInput
Original
Transformed
Ilttabajezaujljg
#
Ilttabaje[SP]zaujljg[EOL]
#[EOL]
[EOF]
SampleOutput
Original
Transformed
Differentmeaning
聪明的输入法
TimeLimit:
10000ms CaseTimeLimit:
2000ms MemoryLimit:
128MB
TotalSubmission:
158 SubmissionAccepted:
27
Description
众所周知,讯飞输入法具备强大的学习功能,对于用户来说,感觉输入法像一个会学习的机器人,比如,当用户第一次输入“sxl”,输入法第一个提示“少写了”,
如果用户选择“睡醒了”,当第二次用户再输入“sxl”的时候,“睡醒了”这个词就会出现在比较靠前的位置,神奇吧,输入法就像一个小孩子,在你的指导下慢慢学会每个拼音的含义。
现在让我们一起来实现下这个神奇的功能吧,为方便起见,我们假设用户是美国籍的(仅输入小写英语字母),每当该用户输入一个单词时,请输出和该用户输入习惯最为匹配的单词(以该单词为前缀的输入频率最高的单词),如果有多个则输出字典序最小的,如果没有的话,则直接输出该单词。
Input
单组测试数据
第一行输入一个整数N(1<=n<=105),表示用户输入单词的个数。
接下来N行由小写字母组成的英文单词,每个单词的长度大于0且不超过10。
Output
请输出n个最为匹配的单词,
第i行输出对应第i个输入单词。
SampleInput
Original
Transformed
5
abc
abd
abc
ab
a
5[EOL]
abc[EOL]
abd[EOL]
abc[EOL]
ab[EOL]
a[EOF]
SampleOutput
Original
Transformed
abc
abd
abc
abc
abc
越来越快
TimeLimit:
1000ms CaseTimeLimit:
1000ms MemoryLimit:
64MB
TotalSubmission:
659 SubmissionAccepted:
50
Description
Viky最近对数列有很大的兴趣,比如斐波那契数列。
但研究斐波那契数列的人太多了,Viky决定用递推公式定义一种新的数列,并命名为Viky数列。
Viky数列定义如下:
V
(1)=X,V
(2)=Y;
V(n)=A*V(n-2)+B*V(n-1),n≥3;
问:
给出整数m,问Viky数列的前m项和sum。
Input
第1行:
测试数据组数t;
接下来依次是这t组数据,对于每一组数据:
第1行:
XYAB,有X,Y,A,B≥0;
第2行:
m,m≥0。
Output
一共t行,第i行对于第i组数据的答案。
SampleInput
Original
Transformed
1
1211
6
1[EOL]
1[SP]2[SP]1[SP]1[EOL]
6[EOL]
[EOF]
SampleOutput
Original
Transformed
32
不只是水仙花
TimeLimit:
1000ms CaseTimeLimit:
1000ms MemoryLimit:
64MB
TotalSubmission:
980 SubmissionAccepted:
259
Description
C语言里有个很著名的问题叫做水仙花数。
水仙花数是一个三位数,它的各位数字的立方相加后等于该数字。
多么美丽的数字啊!
可是Large发现这个世界上不仅仅有水仙花,正如整数不仅仅只有三位数一样。
Large经过仔细研究,发现有很多花比水仙花数更优美,我们现在做出如下定义:
班花数:
它是一个四位数,各位数字的四次方相加后等于该数。
级花数:
它是一个五位数,各位数字的五次方相加后等于该数。
校花数:
它是一个六位数,各位数字的六次方相加后等于该数。
我们的任务就是,对于输入的一个整数,判断它是上述数的哪一种。
Input
包含多组数据,第K组数据格式如下:
第K行:
每行包括一个正整数N(100输入以EOF作为结束
Output
每组数据输出一行,第K组数据格式如下:
第K行:
每行包括一个单词或词组,由对应的输入数字确定,其内容如下
如果该数是水仙花数,输出Daffodil
如果该数是班花数,输出ClassFlower
如果该数是级花数,输出GradeFlower
如果该数是校花数,输出OH~
如果该数不满足任何一个定义,输出一个Nothing
SampleInput
Original
Transformed
153
12345
153[EOL]
12345[EOL]
[EOF]
SampleOutput
Original
Transformed
Daffodil
Nothing
序列
TimeLimit:
1000ms CaseTimeLimit:
1000ms MemoryLimit:
64MB
TotalSubmission:
230 SubmissionAccepted:
56
JudgeByCase
Description
有一个整数序列,它的每个数各不相同,我们不知道它的长度是多少(即整数个数),但我们知道在某些区间中至少有多少个整数,用区间(Li,Ri,Ci)来描述,表示这个整数序列中至少有Ci个数来自区间[Li,Ri],给出若干个这样的区间,问这个整数序列的长度最少能为多少?
Input
第一行一个整数N(N<=1000),表示区间个数;
接下来N行,每行三个整数(Li,Ri,Ci)(0<=Li<=Ri<=1000,1<=Ci<=Ri-Li+1),描述一个区间。
Output
仅一个数,表示该整数序列的最小长度。
SampleInput
Original
Transformed
4
451
6103
7103
561
4[EOL]
4[SP]5[SP]1[EOL]
6[SP]10[SP]3[EOL]
7[SP]10[SP]3[EOL]
5[SP]6[SP]1[EOF]
SampleOutput
Original
Transformed
4
4[EOF]
美丽的字符串
TimeLimit:
1000ms CaseTimeLimit:
1000ms MemoryLimit:
64MB
TotalSubmission:
336 SubmissionAccepted:
66
JudgeByCase
Description
vaccine认为O和X是最优美的两个字母,由O,X组成的字符串是最优美的串,在这些最优美的串中,如果任意只包含X的子串,长度不超过maxX,任意只包含O的子串,长度不超过maxO,且最多有CountO个O,countX个X,那么这个就是超级优美无敌串。
现在Vaccine想知道最长的超级优美无敌串有多长,你能告诉他吗?
Input
输入包含多行,至文件结束为止;
每行四个数,依次是CountO、countX、maxO、maxX.
(0<=CountO、countX、maxO、maxX<=1000000)
Output
每组数据输出一行,一个数表示最长的超级优美无敌串的长度。
SampleInput
Original
Transformed
101000
3511
10[SP]10[SP]0[SP]0[EOL]
3[SP]5[SP]1[SP]1[EOF]
SampleOutput
Original
Transformed
0
7
四舍五入
TimeLimit:
1000ms CaseTimeLimit:
1000ms MemoryLimit:
64MB
TotalSubmission:
649 SubmissionAccepted:
75
Description
四舍五入是程序设计中很头疼的精度误差问题。
现在有一种新的四舍五入规定。
对于一个实数的取整,分为以下几种情况:
1、整数部分的最后一位不是9,小数部分小于0.5,那么取整之后保留整数部分不作处理
2、整数部分的最后一位不是9,小数部分不小于0.5,那么取整之后,整数部分需要加1。
3、整数部分的最后一位是9,那么进位将会是一位很麻烦的事情,所以规定保留整数部分不处理。
给出一个实数,输出取整之后的情况。
Input
一个整数T,表示有T组测试数据。
(1<=T<=100)
每组数据输入格式如下:
给出一个非负实数,也可能是个整数,数的长度<=1000。
Output
对于每组数据,输出取整之后的结果,不要输出前导0.
如不要输出000034,应该输出34
SampleInput
Original
Transformed
3
1.234
1.823
9.643
3[EOL]
1.234[EOL]
1.823[EOL]
9.643[EOL]
[EOF]
SampleOutput
Original
Transformed
1
2
9
分组玩游戏
TimeLimit:
1000ms CaseTimeLimit:
1000ms MemoryLimit:
64MB
TotalSubmission:
526 SubmissionAccepted:
138
Description
n个小朋友在老师的带领下玩游戏。
其中需要分组,老师打算根据大家的衣服颜色分组。
已知衣服颜色用0-9的数字表示。
老师决定每k个人分为一组。
每一组的小朋友必须身穿同一种颜色的衣服。
请你告诉老师,是否能成功分组。
Input
仅一组数据
第一行两个整数n,k(1<=n,k<=100)
每二行n个整数a1,a2,a3……an,表示大家的衣服颜色。
(0<=ai<=9)
Output
如果能分组为输出"Yes",否则输出"No";
SampleInput
Original
Transformed
62
345345
6[SP]2[EOL]
3[SP]4[SP]5[SP]3[SP]4[SP]5[EOL]
[EOF]
SampleOutput
Original
Transformed
Yes
统计字符
TimeLimit:
1000ms CaseTimeLimit:
1000ms MemoryLimit:
64MB
TotalSubmission:
523 SubmissionAccepted:
220
Description
统计每行有多少个字符
Input
有多组测试数据
Output
输出每行的字符个数
SampleInput
Original
Transformed
12dasddwd
12dasddwd[EOF]
SampleOutput
Original
Transformed
9