Advertisement

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

阅读量:

第一题 大写数字

(bignum.pas/c/cpp)

【问题描述】

牛牛妈妈每天都在某家银行工作,在那里她必须处理大量交易相关的单据。单据上要求填写阿拉伯数字的同时还应填入相应的中文大写金额。比如,在某个银行窗口存入1000元时,请确保写下1000这个阿拉伯数字之外还需在大写的金额栏里写出"壹仟元整"。

规范的大写数字格式如下:零到九分别被称为零壹贰参肆伍陆柒捌玖拾佰仟万亿等名称,在编程环境中通常采用对应的中文拼音来表示这些特殊数值标识符如"shì bǎi qīan wàn yī"等术语来替代原有的汉字书写形式以适应计算机处理需求

【输入格式】

一个整数数值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。有趣的是,在这个序列中存在Q个问题需要解决:每次问题都会询问,在从第m个到第n个字符的位置之间(包含这两个端点),有多少个A字符?

你能帮牛牛解决这个问题吗?

【输入格式】

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

【输出格式】

共Q行,每行一个回答。

【样例输入】

1

2 8

【样例输出】

4

【数据范围】

1≤Q≤5000

1≤m≤n≤263

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

第三题 密码翻译

(password.pas/c/cpp)

【问题描述】

密码学是一门极具深奥性和实用性的学科。在日常生活中无处不在的是加密解密的身影:电视端(如电视剧中的密钥播放)、即时通讯工具如QQ以及智能手机等设备上都可以见到。传统的简单加密方法虽然无法完全抵御破解攻击;然而这些方法并不能抵御所有潜在的安全威胁

我们提出了一种最为简洁的有效加密方案:对于任意给定的一个字符串S,在其字符序列中将所有属于英文字母范围内的字符按照以下规则进行处理:将所有属于a到y(不包括z)、A到Y(不包括Z)的字母分别替换为其下一个字母;同时将z和Z分别替换为a和A;其余不在英文字母范围内的字符保持不变。经过上述处理后即可得到所需的加密字符串S'。

【输入格式】

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

其余n行每行一个字符串,每个字符串长度小于80个字符。

【输出格式】

输出每行字符串的加密字符串。

【样例输入】

1

Hello! How are you!

【样例输出】

Ifmmp! Ipx bsf zpv!

第四题 趣味琴盘

(piano.pas/c/cpp)

【问题描述】

有一个非常有趣的钢琴 keyboard, 它拥有一个独特的 keyboard layout. 这个 keyboard 的键可以从左至右依次标号为1, 2, 3, 4,…不断增加数量.

每把键盘仅有两种状态:抬起或按住。轻轻触碰某一特定的键盘后,该 keyboard 的状态将会发生转变:如果是处于被按下的 state,则转变为 lift;反之亦然.

在刚开始的时候,所有的键盘都是按下的。

牛牛每次可以进行如下的操作:

设两个实数值a与t均为给定参数(其中t为正整数值)。按照序列[a], [2a], [3a], …, [ta]依次选取对应的键盘编号并执行按键操作;其中符号[k]代表实数值k的小于等于其的最大整数值(例如对于k=1.55455,则[k]=1)。

在完成n次操作之后, 牛牛意外地发现, 此时只有一个键盘升起. 此刻, 他迫切想知道那个被弹出的键的具体号码是什么. 然而由于距离的原因, 他在实际观察时却无法看清具体号码是多少.

庆幸的是,在某个时候,牛牛无意中发现了之前进行的n次操作。后来牛牛找到了你,并且你能协助计算出这个弹起键盘的具体型号吗?

【输入格式】

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

随后会有n组数据输入,请注意以下几点:每组数据包含两个数值:ai和ti(i从1到n)。其中每个ai都是带有六位小数的实数值,并且小数点后精确到第六位数字;而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次操作后,有且只有一个键盘是弹起的,不必判错。

全部评论 (0)

还没有任何评论哟~