2014年南海区青少年信息学奥林匹克竞赛试题(小学甲组)
2014年南海区青少年信息学奥林匹克竞赛试题
(小学甲组)
注意事项:
1.本次竞赛将使用评测系统进行自动评测,以源程序的测试结果为准。
2.要利用文件严格按题目要求的格式(参考输入输出样例)进行输入输出,否则将被判为错误而不得分。
3.所有文件要按试卷指定的文件名命名,程序中不要使用绝对路径,否则将无法测试而被判为0分。
4.比赛结束前,要将最完善的源程序集中保存到以选手考号(字母用大写)加姓名命名的文件夹中(例如:XJ372陈才),该文件夹中不能再设子文件夹;同时还要在选手程序文件夹中建一个文本文件“<姓名>程序清单.txt”,文件内容写清上交的程序文件名。
5.现场编程3小时,每测试点时间限制1秒、内存限制128M,每题50分,总分300分。
6.各题程序及数据文件名规定:
第一题换座位(seat)
问题描述:
期中考试结束了,班主任想给同学们重新安排座位,所以她让同学们按学号1至n 的顺序依次在教室外排好队,然后在队伍中挑选一些同学来改变他们的位置。班主任想知道最终有多少个同学的位置发生了变化。
楠楠是个信息学高手,班主任把这个任务交给楠楠来完成。
输入格式:
第一行,输入一个整数n(n<=100),表示有n个同学。
第二行,有n个整数,依次表示换位后的学号。
输出格式:
输出有多少个同学的位置发生了变化。
输入样例:
10
1 2 5 4 6 3 7 8 9 10
输出样例:
3 (样例说明:只有学号为5,6,3共3位同学的位置发生了变化。)
第二题找M进制数(num)
问题描述:
在信息学课上,楠楠学习了进制数。
他知道了原来数不仅可以表示成十进制,还可以表示成二进制,八进制,十六进制,甚至是二十进制,三十进制都可以。而且它们都有一个相同的运算规则:逢M进一,例如:二进制逢二进一,八进制逢八进一。因此,M进制数中每一位上的数可以用0~M-1来表示,即二进制数中只有0和1两种数字,八进制数中有0,1,2…7共八种数字。但是若M大于10时,大于等于10的数字用大写字母表示,例如十六进制数中有0,1,2…9,A…F共16种数字。
现在老师给出N个任意进制数,要求统计出N个数中合法的M进数的个数。
输入格式:
输入数据有多行。
第一行,有两个整数N(1<=N<=100000)和M(2<=M<=36),分别表示任意进制数的个数和M进制。
接下来有N行,每行一个由数字和大写字母构成的任意进制数,位数小于50。
输出格式:
输出N个任意进制数中,合法的M进制数的个数。
输入样例:
5 16
102
AFF
5A
890
5S
输出样例:
4
样例解释:因为“5S”中“S”不是16进制数的合法数字,故只有4个合法的16进制数。
第三题循环小数(decimal)
问题描述:
数学课上,楠楠学习了一个新的知识。
两数相除,如果得不到整数商,会有两种情况:一种是得到有限小数,另一种是得到无限小数。从小数点后某一位开始依次不断地重复出现前一个或一节数字的十进制无
限小数,叫做循环小数,如2.9666..., (在数学中它读作“二点九六,六循环”),定义循环小数的缩写法是将第一个循环节以后的数字全部略去,并将第一个循环节首末用括号括起来。
例如:
2.966666... 缩写为 2.9(6)
35.232323…缩写为 35.(23)
楠楠发现,根据循环小数的特征,很快能算出这个循环小数中小数点后第n位的数字,你能吗?
输入格式:
输入数据有两行。
第一行,输入一个整数n(n<=100000),表示求小数点后的第n位。
第二行,一个字符串,用缩写法表示的一个循环小数。
输出格式:
输出一个整数,求出循环小数中小数点后第n位的数字。
输入样例1:
10
352.19(7)
输出样例1:
7
输入样例2:
5
7328.(192)
输出样例2:
9
第四题数字方阵(matrix)
问题描述:
周末,爸爸妈妈带着楠楠去商场玩,正好碰上了商场在举办有奖竞答活动,而且根据问题的难度不同,奖品的价值也有不同。聪明爱动脑的楠楠挑了一个难度最大的问题来挑战自己。最后他赢得了丰厚的奖品和热烈的掌声。
这个问题是:在一个数字方阵中,随机放置了0~9的数字。我们把由数字1~9的组成的串称为非零串(不含0的数字串)。例如02303230 ,这组数据中有23 和323两种非零串。其中长度最长的非零串为323。
已知一个N*M(1<=N,M<=1000)的数字方阵,求方阵第k行的最长非零串的长度。
如下图:在这个4*8的方阵中,第2行的最长非零串长度为3。
由于这个方阵太大了,很多人都不敢一试。这时候,楠楠拿出他的随身笔记本,编了一个程序,瞬间就秒杀了它!
如果是你,你能解决吗?
输入格式:
输入数据有若干行。
第一行,有三个整数N、M(1<=N、M<=1000)和K(1<=K<=N),其中N、M分别表示这个数字方阵中行数和列数。K表示求数字方阵第K行的最长数字串长度。
接下来有N行,每行M个0~9的数字,每个数字间用一个空格隔开。
输出格式:
输出第K行的最长非零串的长度。
输入样例:
4 9 3
9 2 0 0 3 4 2 5 0
4 0 2 3 0 3 2 3 1
3 8 3 2 9 0 7 5 1
1 0 3 1 0 0 6 6 0
输出样例:
5
第五题单纯质因数(pprim)
问题描述
读五年级的楠楠刚学完了质数、合数、因数、质因数等概念。
他还知道了每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,叫做这个合数的质因数.把一个合数用质因数相乘的形式表示出来,叫做分解质因数.
聪明爱动脑筋的楠楠突然对具有互不相同的质因数的合数产生了兴趣。例如:30=2*3*5,它有互不相同的质因数;70=2*5*7,它也有互不相同的质因数。若一个合数中所有的质因数互不相同,则把它称之为具有单纯质因数的合数。他想知道还有哪些数是单纯质因数的合数。
你现在要帮楠楠解决的问题是:已知N,依次输出N以内所有具有单纯质因数的合数。
输入格式:
输入数据只一个整数N(10<=N<=100000)。
输出格式:
依次输出N以内所有具有单纯质因数的合数。
输入样例:
12
输出样例:
6 10
第六题安装饮水机(post)
问题描述
为倡导城市低碳生活,市文明办计划举办马拉松比赛,为确保比赛安全,沿途设置了一些观察点。每个观察点派一个观察员驻守。由于天气比较炎热,需要在沿途安装一些饮水机,使得观察员可以去取水喝。由于观察员每移动一个单位的路程,需要耗费一个单位的体力。而每个观察员的体力有限,只能在他体力能支持的范围内去取水喝,要不他就会渴死或累死。
聪明的楠楠也参与了这次比赛的筹备工作。他的任务是设计一个理想的安装饮水机方案,使得安装的饮水机最少,但又保证所有观察员都能取到水喝。
输入格式:
输入数据有若干行。。
第一行,仅一个整数,表示有N(0 接下来有N行,每行两个整数S(0 输出格式: 输出最少要安装几台饮水机。 输入样例: 4 6 3 12 2 1 5 14 5 输出样例: 2 样例说明:他可以将饮水机安装在距离起点为6和12的位置上,这样所有的观察员都能喝到水。方案有多种,只需输出最少需要几台饮水机即可。