“讯飞杯”合肥市第三十届青少年信息学奥林匹克竞赛(小学组)试题

发布时间 : 星期六 文章“讯飞杯”合肥市第三十届青少年信息学奥林匹克竞赛(小学组)试题更新完毕开始阅读

“讯飞杯”合肥市第三十届小学信息学竞赛

“讯飞杯”合肥市第三十届青少年信息学奥

林匹克竞赛(小学组)试题

2013年11月23日 14:00-16:30 (请选手务必仔细阅读本页内容)

一、题目概况

中文题目名称 源程序名 输入文件名 输出文件名 满分 测试点数目 是否有部分分 内存限制 每个测试点时限 大写数字 bignum bignum.in bignum.out 100 10 否 128M 1秒 奇妙变换 magic magic.in magic.out 100 10 否 128M 1秒 密码翻译 password password.in password.out 100 10 否 128M 1秒 趣味琴盘 piano piano.in piano.out 100 10 否 128M 1秒 二、注意事项

1. 考试时间为150分钟。

2. 务必看清题目,严格按照所要求的格式输入、输出。

3. 在调试程序时请先使用题目中的示例数据,然后再自行设计多组测试数据进行调试。 4. 每题一般有10个测试点,测试有严格的时间限制,请尽可能优化算法。 5. 命名规则:

(1)每题都规定了该题的英文名称。

(2)程序文件和数据文件的主文件名都是该题的英文名字。 (3)程序文件扩展名采用语言环境的默认扩展名。

(4)数据文件都是文本文件,输入和输出文件的扩展名分别是.in和.out。

6. 程序应从输入文件读取数据,并严格地按照规定的输出格式将结果输出到输出文件中。

输入数据文件和输出数据文件都与程序在同一个目录中,由于程序所在目录是不确定的,因此不允许在文件名中含有盘符信息和任何形式的路径信息。

7. 选手在竞赛结束时应在D盘的根目录下建立以准考证号命名的文件夹,并将所完成各

题的源程序文件和可执行文件拷贝到该文件夹中。

2013·合肥

“讯飞杯”合肥市第三十届小学信息学竞赛

第一题 大写数字 (bignum.pas/c/cpp)

【问题描述】

牛牛同学的妈妈在一家银行上班,每天都要填写大量交易的单据。在银行的单据上,除了要填写阿拉伯数字外,还要填写对应的中文大写数字。例如:当我们要到某银行柜台存1000元时,除了要写1000这个阿拉伯数字外,还要在大写数字栏中写“壹仟元整”。

已知标准大写数字写法如下:零、壹、贰、参、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿。请你帮牛牛妈妈写一个程序将数字转换为中文大写数字。由于测试系统中的编译器不直持汉字,所以0-9数字的中文大写还是用0-9代表,“拾、佰、仟、万、亿”分别用它们的拼音(shi,bai,qian,wan,yi)代表。 【输入格式】 一个整数数值n 【输出格式】

对应的中文大写文字字串 【样例输入1】 0

【样例输出1】 0

【样例输入2】 202

【样例输出2】 2bai02

【数据范围】

对于30%的数据,0≤n≤10; 对于50%的数据,0≤n≤100; 对于100%的数据,0≤n≤100000

第二题 奇妙变换 (magic.pas/c/cpp)

【问题描述】

为了奖励牛牛同学帮妈妈解决了大写中文数字的问题,牛牛妈妈特地抽出一个周末的时间带着牛牛来到梦幻儿童乐园游玩。

在游乐园,牛牛看到了一个非常有意思的游戏:游戏一开始,电脑屏幕上只有一个序列“A”,而后的每一次变化都把序列中的“A”变成“AB”,“B”变成“A”。游戏一直继续??,最后屏幕上得到了序列“ABAABABAABAABABAABA??”。当然更有意思的是,电脑会提出Q个询问,每次询问:在第m个字符和第n个字符之间有多少个“A”(包括第m、n个字符在内)。

你能帮牛牛解决这个问题吗? 【输入格式】

第一行为一个整数Q,后面有Q行,每行两个数用空格隔开的整数m,n。 【输出格式】

共Q行,每行一个回答。

2013·合肥

“讯飞杯”合肥市第三十届小学信息学竞赛

【样例输入】 1 2 8

【样例输出】 4

【数据范围】 1≤Q≤5000

63

1≤m≤n≤2

保证每次询问时,所询问的区间已经生成。

第三题 密码翻译 (password.pas/c/cpp)

【问题描述】

密码学是一门非常深奥、实用的学问。在我们的日常生活中处处可见加密解密的影子:电视中、QQ上、手机中??。为了在信息传递过程中防止被截获,往往需要对传输的文本用一定的方式加密,简单的加密算法虽然不足以完全避免信息被破译,但仍然能防止信息被轻易的识别。

我们给出一种最简的的加密方法: 对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他字符不变,则可得到一个简单的加密字符串。 【输入格式】

第一行是字符串的数目n;

其余n行每行一个字符串,每个字符串长度小于80个字符。 【输出格式】

输出每行字符串的加密字符串。 【样例输入】 1

Hello! How are you! 【样例输出】

Ifmmp! Ipx bsf zpv!

第四题 趣味琴盘 (piano.pas/c/cpp)

【问题描述】

有一个非常好玩的钢琴,它拥有一个奇特的琴盘,琴盘中的键可以无限增加,从左到右依次编号为1,2,3,4,??。

每一键只有两种可能的状态,弹起或者按下。如果按一下某一个键盘,那么这个键盘的状态将发生改变:如果原来是按下,将变成弹起;如果原来是弹起,将变成按下。 在刚开始的时候,所有的键盘都是按下的。 牛牛每次可以进行如下的操作:

指定两个数:a,t(a为实数,t为正整数)。将编号为[a],[2*a],[3*a],??,[t*a]

2013·合肥

“讯飞杯”合肥市第三十届小学信息学竞赛

的键盘各按一次。其中[k]表示实数k的整数部分,例如[1.554555]为1。

在牛牛进行了n次操作后,他突然发现,这个时候只有一个键盘是弹起的,牛牛很想知道这个键盘的编号,可是这键盘离牛牛太远了,他看不清编号是多少。

幸好,牛牛还记得之前的n次操作。于是牛牛找到了你,你能帮他计算出这个弹起的键盘的编号吗? 【输入格式】

第一行一个正整数n,表示n次操作。

接下来有n行,每行两个数:ai,ti。其中ai是实数,小数点后一定有6位,ti是正整数。

【输出格式】

仅一个正整数,那个弹起的键盘的编号。 【样例输入】 3

1.618034 13 2.618034 7 1.000000 21 【样例输出】 20

【数据范围】

记T=t1+t2+t3+??+tn。

对于30%的数据,满足T<=1000 对于80%的数据,满足T<=200000 对于100%的数据,满足T<=2000000

对于100%的数据,满足n<=5000,1<=ai<1000,1<=ti<=T

数据保证,在经过n次操作后,有且只有一个键盘是弹起的,不必判错。

2013·合肥

联系合同范文客服:xxxxx#qq.com(#替换为@)