“讯飞杯”合肥市第二十九届信息学奥林匹克竞赛
小学组
“讯飞杯”合肥市第二十九届青少年信息学 奥林匹克竞赛(小学组)试题及部分答案
(请选手务必仔细阅读本页内容)
一、题目概况
中文题目名称 源程序名 输入文件名 输出文件名 满分 测试点数目 是否有部分分 内存 每个测试点时限
素数 number number.in number.out
100 10 否 128M 1秒
换座位 shuffle shuffle.in shuffle.out
100 10 否 128M 1秒
楼梯 stair stair.in stair.out 100 10 否 128M 1秒
二、注意事项
1. 考试时间为 150 分钟。
2. 务必看清题目,严格按照所要求的格式输入、输出。
3. 在调试程序时请先使用题目中的示例数据,然后再自行设计多组测试数据进行调试。 4. 每题有 10 个测试点,测试有严格的时间,请尽可能优化算法。 5. 命名规则:
(1)每题都规定了该题的英文名称。
(2)程序文件和数据文件的主文件名都是该题的英文名字。 (3)程序文件扩展名采用语言环境的默认扩展名。
(4)数据文件都是文本文件,输入和输出文件的扩展名分别是.in 和.out。
6. 程序应从输入文件读取数据,并严格地按照规定的输出格式将结果输出到输出文件中。
输入数据文件和输出数据文件都与程序在同一个目录中,由于程序所在目录是不确定 的,因此不允许在文件名中含有盘符信息和任何形式的路径信息。
7. 选手在竞赛结束时应在 D 盘的根目录下建立以准考证号命名的文件夹,并将所完成各题
的源程序文件和可执行文件拷贝到该文件夹中。
合肥 2012‐12‐01 第 1 页/共 3 页
“讯飞杯”合肥市第二十九届信息学奥林匹克竞赛
小学组
1.素数(number)
【问题描述】
期中考试刚刚结束,聪聪是班上的学习委员,可是这次数学成绩班上好多同学都考了满
分,聪聪只考了 98 分,就错在一道求素数的题目上,题目是这样的:已知 N 和 M 两个正整 数,求 N 至 M 之间(包括 N 和 M)有多少个素数。聪聪觉得很懊恼,他决定必须研究清楚这 个问题。由于聪聪今年刚加入学校的计算机兴趣班,于是他决定利用编程来解决这个问题, 你能帮助他吗? 【输入文件】
输入文件共一行:两个正整数数 N 和 M,中间以一个空格隔开。 【输出文件】
输出文件一个正整数:表示 N 至 M 之间(包括 N 和 M)的素数个数。 【输入输出样例】
number.in 3 7
【数据说明】 1≤N<M≤32767。
number.out 3
2.换座位(shuffle)
【问题描述】
在你的帮助下,聪聪很快解决了这个问题,信心又回来了。老师为了奖励聪聪这种知难 而进的精神,决定把今年的庆祝少先队建队 63 周年纪念活动中的游戏项目交给聪聪来策划。 聪聪可高兴了,他召集了班上的少先队员一起来讨论,最终确定了这样一个游戏:班上 共有 2N 个少先队员,开始时每个少先队员坐在自己的板凳上排成一队,由聪聪开始击鼓,
每次击鼓开始时,前 N 个同学坐到第 2、4、…、2N 个板凳上,后 N 个同学坐到第 1、3、…、 2N-1 个板凳上,击鼓结束时坐错或者还没有坐到对应板凳上的同学就要接受惩罚——表演 一个节目。聪聪不断的击鼓然后停顿后又击鼓,同学们都觉得这个游戏很好玩,但是当游戏 结束时,同学们傻眼了,由于每位同学的板凳都差不多,他们找不到自己的板凳了。这次聪 聪反应特别快,他说经过一定次数的换座位,每位同学一定能回到自己的板凳的。那么这个 次数最少是多少呢?你会计算吗? 【输入文件】
输入共一行,一个正整数 N。 【输出文件】
输出文件一个正整数,每位同学都回到自己板凳的最少换座位次数。 【输入输出样例】
shuffle.in 10
【数据范围】 1≤N≤10,000。
shuffle.out 6
合肥 2012‐12‐01 第 2 页/共 3 页
“讯飞杯”合肥市第二十九届信息学奥林匹克竞赛 小学组
这个游戏启发了聪聪,他想:如果积木底盘无限大,当积木数很多时,能摆放的情况就有很多很多,你能计算出有 N 个积木时按照上述规则能摆放出多少种情况吗?
【输入文件】
输入文件为一个正整数 N(N≥3),表示积木个数。 【输出文件】
输出文件一个正整数,表示能摆放出的情况数。 【样例输入输出】 stair.in stair.out 5
2
【数据范围】
对于 40%的数据满足 N≤10; 对于 80%的数据满足 N≤100; 对于 100%的数据满足 N≤200。
合肥 2012‐12‐01
第 3 页/共 3 页
答案:program shuffle(input,output); var
a,b:array[1..20000] of integer; n,i,j,t:integer; begin
readln(n);
for i:=1 to 2*n do a[i]:=i; repeat j:=j+1;
for i:=1 to 2*n do begin
if a[i]<=n then a[i]:=a[i]*2 else
a[i]:=(a[i]-n)*2-1; end; until a[1]=1; writeln(j); end.
3. 楼梯(stair)
【问题描述】
聪聪的游戏全校同学都很喜欢,老师表扬了聪聪。放学回家以后,发现小表弟在家,妈 妈告诉表弟:“聪聪哥哥特别会玩游戏,你让聪聪哥哥陪你玩啊!,小表弟就拿出他的积木” 让聪聪陪他玩,聪聪开始不想在家陪表弟,他想和同学出去玩呢,可是妈妈说,如果陪表弟 玩开心了,周末就带他去游乐场。听了这话,聪聪就跟妈妈保证,一定好好陪小表弟玩。聪 聪一边拿着表弟的积木,一边在想,平常的游戏表弟都玩腻了,有什么新的好玩的呢。不一 会聪聪就想到了,小表弟的这组积木有个底盘,是由很多方格组成的,积木中正好有一些与 方格大小相同的正方形积木,聪聪和小表弟一起按如下规则将这些正方形积木摆放在底盘 上:底盘的每一竖行方格组成一列,必须从最左边的一列开始摆放,每列从最下面的方格开 始连续摆放积木,底盘至少要放两列,后一列放的积木数至少比前一列多一个。下图为 5 个积木所能摆放的出的情况。聪聪一边教表弟一边摆出不同积木数的各种情况。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务