小学信息学竞赛模拟上机试题Word格式文档下载.docx
《小学信息学竞赛模拟上机试题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《小学信息学竞赛模拟上机试题Word格式文档下载.docx(5页珍藏版)》请在冰豆网上搜索。
2.禁止使用的部分:
序列:
vector,list,deque
序列适配器:
stck,que,priority_que
xx容器:
mp,multimp,set,multiset
拟容器:
vlrry
散列容器:
hsh_mp,hsh_set,hsh_multimp,hsh_multiset
所有的标准库算法
相关头文件:
题1.甜蜜的烦恼(spce.ps/c/cpp)
问题描述】
最近珍珍学会了使用电脑,她发现可以利用电脑解决很多事情,并且效率会快许多。
比如,在一份名单中找某个人的姓名,在以前,她得依次逐个查找,速度慢又很容易看错。
现在,她使用菜单命令:
“编辑”-“查找”(或按Ctrl+F键),在弹出的查找对话框中,输入要查找的姓名,电脑就会找到要找的姓名或告诉你不存在你要找的姓名了。
真是又快又准,太爽了!
今天珍珍在查找时,输入“张明”,电脑告诉她不存在,但她不经意间发现“张明”是有的!
原来,提供原始名单的人,为了格式美丽在中间输入了一个空格,因此电脑找不到了。
她想这容易解决,继续查找“李达”,没有?
查找“李达”(中间一个空格),还没有?
原来某些姓名中间的空格数是有多个的!
珍珍想删除所有姓名中间的空格,但由于名单很多,一个删除太慢了,所以她找到了会编程解决问题的你,请你写一个程序,删除所有名单中的空格。
输入】输入文件spce.in的第一行只有一个正整数n,表示名单ZG有n个人的姓名。
第二行至第n+1行共n行,每行是一个人的姓名(由大小写英文字母和空格组成)。
输出】输出文件spce.out有n+1行,第一行只有一个正整数,表示总共删除的空格数。
第二行至第n+1行共n行,每行表示一个删除空格后的姓名(按照输入姓名的次序)。
样例输入】
样例输出】
36
ZhngMing
LiD
Wngling
数据限制】100%的数据,1≤n≤100,每行姓名的字符数不超过100。
题2.冰壶比赛(Curling.ps/c/cpp)
在3月29日举行的女子冰壶世锦赛决赛中,王冰玉、柳荫、岳清爽和周妍组成的ZG女子冰壶队以8比6击败了冬奥会和世锦赛双冠王瑞典队,夺得了ZG冰壶历史上第一枚世锦赛金牌,制造了历史。
美丽、实力兼具的ZG冰壶姑娘们也赢得了超高的赞誉。
在冰壶比赛中,给出一个目标点P,以及一个规定的正整数r。
每一局由甲乙两队轮流投冰壶各8次后,该局比赛结束。
此时,哪一方的冰壶最终离目标
点P更近,该方得分,另一方不得分。
得分方每颗离目标点P距离小于或等于r、位置较另一队所有冰壶都更接近目标点P的冰壶都可以得1分。
比赛最多进行10局。
双方之间的某局比赛结束后,落后一方可以弃权。
此时,比赛不再进行下去。
已知每一局结束时,双方的每个冰壶离目标点P的距离,以及正整数r,请你写一个程序推断两队之间每一局比赛的得分,以及总得分。
输入】输入文件Curling.in的第一行只有一个正整数r。
以下有若干行(不超过20行),除了最后一行外,每一行有8个正整数(互相之间以一个空格分隔)。
第2行的第j个数表示第1局比赛结束时,甲方的第j个冰壶距离目标点P的距离;
第3行的第j个数表示第1局比赛结束时,乙方的第j个冰壶距离目标点P的距离;
第4行的第j个数表示第2局比赛结束时,甲方的第j个冰壶距离目标点P的距离;
第5行的第j个数表示第2局比赛结束时,乙方的第j个冰壶距离目标点P的距离;
……
第2k行的第j个数表示第k局比赛结束时,甲方的第j个冰壶距离目标点P的距离;
第2k+1行的第j个数表示第k局比赛结束时,乙方的第j个冰壶距离目标点P的距离;
如果有一方中途弃权,则最后一行(偶数行)只有一个整数-1,表示此时发生弃权情况。
输出】输出文件Curling.out有若干行,每行有二个整数,中间以一个冒号分隔,表示每一局比赛甲乙双方的比分(甲得分在前)。
最后一行有二个整数,中间以一个冒号分隔,表示甲乙双方比赛的最终得分(甲得分在前)。
样例输入1】
315133
181011
92
40
18
21926
-1
样例输出1】
0:
1
4:
0
3:
7:
样例输入2】
2311
9
10
5
8
1105
2
218
17
91820
516
7137
4
样例输出2】0:
2:
15:
3
样例说明】
在样例1中,比赛进行了3局后,有一方弃权了,比赛到此结束,最终比分为已经进行过的前3局比分之和。
在样例1和样例2中:
第1局比赛时,甲方离目标点P的最近距离为3,乙方离目标点P的最近距离为2,乙方得分。
乙比甲方的3更小的值只有1个(值为2壶),因此乙方得1分。
第3局比赛时,甲方离目标点P的最近距离为1,乙方离目标点P的最近距离为15,甲方得分。
甲比乙方的15小的值有5个(
2、10、
1、14、3),但小于等于r=8的值只有3个(
2、1、3),因此甲得3分。
样例1只进行了3局,总得分为7:
1,样例2所有10局比赛进行完,总得分为15:
3。
数据限制】70%的数据,双方均不弃权,比赛进行10局。
100%的数据,每只冰壶距离目标点P的距离不超过100。
题3.分数统计(count.ps/c/cpp)
学校为了操纵作业量,实施“轻负担,高质量”的有效教学,对所有在校学生的作业量情况进行了调查。
每个学生填写做作业所需要的时间。
最后统计出所有学生做作业时间的平均值。
为了幸免个别学生不客观填写的影响,规定学生的填写的数字应该为1至100间的正整数,如果某个学生填写了不在此范围内的整数,统计平均值时应该忽略这个学生。
现在要求完成:
(1)统计出所有学生做作业时间的平均值;
(2)除去做作业时间前10%的学生和后10%的学生后(10%学生数按四
舍五入计),统计做作业时间的平均值。
请你写个程序,完成以上任务。
(提示:
Pscl语言中,Round(x)为四舍五入函数,在C语言中可使用int(x+
0.5))
输入】输入文件count.in的第1行有1个正整数n。
表示有n个人。
第2行至第n+1行共n行,每行只有1个整数,表示每个学生填写的做作业时间。
输出】
输出文件count.out有2行,每行只有1个数(保留2位小数)第1行只有一个整数,表示所有合法填写学生做作业的平均时间;
第2行只有一个整数,
表示除去10%最多时间和10%最少时间的学生后,所有合法填写学生做作业的平均时间;
710
60
80
70
90
110
100
68.33
75.00
所有学生做作业的平均时间为:
(10+60+80+70+90+100)/6=
10%的学生数为:
7*10%=
0.7≈1(四舍五入至整数)
除最快和最慢的1个学生外,做作业的平均时间为:
(60+80+70+90)/4=
样例限制】
30%的数据,5≤n≤10,且所有学生填写的做作业时间均在1至100之间。
100%的数据,5≤n≤1000。
学生填写的数据保证为整数,合法填写的学生数保证大于10%的学生数(四舍五入至整数后)的2倍。
题4.平方数(squre.ps/c/cpp)
珍珍学习乘法时,发现4=2*2,9=3*3,…,而2不可能分解为二个整
数的乘积,但可以分解为1*1+1*1。
她想知道对任意的正整数n,把它分解为几个整数与自身相乘之和,有多少种方案呢?
输入】
输入文件squre.in只有一行,该行只有一个正整数n。
输出文件squre.out只有一行,该行只有一个正整数,表示总方案数。
13
样例输出2】
6
4有2种分解方案,它们是:
4=1*1+1*1+1*1+1*1
=2*2
13有6种分解方案,它们是:
13=1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1=1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+2*2
=1*1+1*1+1*1+1*1+1*1+2*2+2*2
=1*1+1*1+1*1+1*1+3*3
=1*1+2*2+2*2+2*2
=2*2+3*3
数据限制】30%的数据,1≤n≤10;
80%的数据,1≤n≤300;
100%的数据,1≤n≤800。