《宁波市第26届中小学生计算机程序设计竞赛复赛试题(小学组)-副本.doc》由会员分享,可在线阅读,更多相关《宁波市第26届中小学生计算机程序设计竞赛复赛试题(小学组)-副本.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、宁波市第 26 届中小学生计算机程序设计竞赛复赛试题(小学组) 第 8 页 共 8 页宁波市第26届中小学生计算机程序设计竞赛复赛试题(小学组)题目一览试题名称 斯诺克抓鱼演出队列利比亚行动英文代号 snookerfishqueuelibyan程序名 snooker.pas/c/cpp fish.pas/c/cpp queue.pas/c/cpp libyan.pas/c/cpp 输入文件名 snooer.in fish.in queue.in libyan.in 输出文件名 snooker.out fish.out queue.out libyan.out 内存限制 128 MB 128 M
2、B 128 MB 128 MB 时限 1秒 1秒 1秒 1秒 关于竞赛中不同语言使用限制的说明 一关于使用Pascal语言与编译结果的说明 1对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。 2允许使用数学库(uses math子句),以及ansistring。但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:$R-,Q-,S-),也不支持与优化相关的选项。 3本次比赛允许使用64位整数类型:int64或qword。 1.斯诺克(snooker)题目描述镇海中学开设了很多校本选修课程,有体育类、音乐类、美术类、无线电测向、航空航海航天
3、模型制作等,力争使每位学生高中毕业后,能学到一门拿得出手的兴趣爱好,为将来的终身发展打下基础。在体育类的校本选修课程中,有一门课程是斯诺克台球。斯诺克台球比赛中有21个球,其中有15个红球,6个彩球(黄、绿、棕、蓝、粉、黑)。甲乙二人轮流打球。打一个红球得1分,打一个彩球的得分如下:黄球:2分; 绿球:3分; 棕球:4分;蓝球:5分; 粉球:6分; 黑球:7分;最后以得分高者为胜。简化后的打球规则如下:1如果有红球,第奇数次必须打红球,打过的红球从桌面上拿走;2每打一个红球后,可以任意选一个彩球打,打红球后接着打的彩球不从桌面上拿走;3. 如果桌面上已经没有红球可打了,那么按照分值从小到大的次
4、序打彩球,这时候每打一个彩球都从桌面上拿走。打球时犯规的判罚如下:1. 没有打中球,给对方加4分;2没有按照打球规则打该打的球,即打中了错误的球时:(1)如果这个错误的球的分值大于4,那么给对方加等于这个球的分值;(2)如果这个错误的球的分值不大于4,那么给对方加4分;打中的错误球不从桌面上拿走。请统计某局比赛进行到现在为止的比分。 输入输入文件snooker.in的第一行有二个整数n和m,表示甲打了n个球,乙打了m个球。n和m之间以一个空格分隔。 第二行,有n个以空格分隔的整数,表示甲的n次连续打球情况。第三行,有m个以空格分隔的整数,表示乙的m次连续打球情况。第二行和第三行中:(1)1至7
5、的整数表示打了相应分值的球;(2)最后一个数字是0,表示没有打中球犯规,0只会出现在这二行的最后一个数字处;(3)打了错误球的犯规也只会出现在这二行最后一个数字处;输入数据保证是正确,不会出现打到桌面上不存在的球的情况,数据不必检验。输出输出文件snooker.out中只有一行,该行有二个整数(互相之间以一个空格分隔),表示比赛进行到现在为止甲乙二人的得分(先打的甲在前)。样例输入【样例输入1】 4 31 7 1 6 1 7 1【样例输入2】 11 241 7 1 7 1 7 1 7 1 7 1 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 2 3 4 5 6 7【样
6、例输入3】 4 4 1 7 1 11 4 1 0样例输出【样例输出1】 15 9【样例输出2】 41 99【样例输出3】 13 10提示【样例说明1】甲依次打了红球、黑球、红球、粉球,甲得15分(1+7+1+6);乙依次打了红球、黑球、红球,乙得9分(1+7+1);【样例说明2】甲每打一个红球后打一个黑球(共打了5次),最后打的是红球,得41分:5*(1+7)+1=41;乙每打一个红球后打一个黑球,打完所有红球后,按规则依次将黄、绿、棕、蓝、粉、黑球全部打进,得99分:9*(1+7)+2+3+4+5+6+7=99;【样例说明3】甲依次打进了红球、黑球、红球,然后应该打红球以外的彩球,但误中红球
7、,甲得9分(1+7+1),甲犯规乙得4分;乙依次打进了红球、棕球、红球,然后未打中任何球,乙得6分(1+4+1),乙犯规甲得4分;【数据说明】80%的数据,每次总是打中球的,并且每次打中的球总是正确的,没有犯规情况。2. 抓鱼(fish)题目描述【题目描述】五一节放假了,小仪高高兴兴地去奶奶家玩。在去奶奶家的路上,有n个小池塘,池塘很浅很浅,所以没有危险的。每个池塘中有若干条鱼。抓同一个池塘中的每条鱼的时间是相同的,但抓不同池塘中的鱼的时间可能不同。为了不让奶奶久等,小仪只有t分钟的时间能用来抓鱼。请问小仪最多能抓多少条鱼呢?输入【输入】输入文件fish.in的第一行有二个整数n和t,表示有n
8、个池塘,小仪能使用t分钟时间抓鱼。n和t之间以一个空格分隔。第二行,有n个正整数,第i个正整数xi表示第i个池塘中有xi条鱼(每二个正整数之间有一个空格)。第三行,有n个以空格分隔的正整数,第i个正整数yi表示第i个池塘中每抓一条鱼都需要yi分钟时间(每二个正整数之间有一个空格)。输出【输出】输出文件fish.out中只有一行,该行只有一个整数v,表示小仪最多能抓v条鱼。样例输入【样例输入】 3 262 1 34 5 6样例输出【样例输出】5提示【样例说明】小仪可以花8分钟在第1个池塘抓2条鱼,花5分钟时间在第2个池塘抓1条鱼,花12分钟时间在第3个池塘抓2条鱼。小仪最多可以抓5条鱼。【数据说
9、明】20%的数据,1n3;80%的数据,1n1000;100%的数据,1n100000,1t5000000000。3. 演出队列(queue)【题目描述】今年是镇海中学的百年校庆。学校派出了一列排好队的同学参加校庆演出,每个同学都有不同的身高。为了演出时效果好点,导演需要挑选连续排在一起的一些同学参加演出,并且要求这些同学的身高从前到后是越来越高的。请问:最多可以挑出多少个同学参加演出?输入【输入】输入文件queue.in的第一行只有一个整数n。第二行有n个正整数(互相之间以一个空格分隔),表示连续排列的每个同学的身高。输出【输出】输出文件queue.out中只有一行,该行只有一个整数,表示最
10、多可以挑出的同学数。样例输入【样例输入】 13176 171 172 173 179 177 178 175 176 177 170 178 179样例输出【样例输出】4提示【样例说明】既要排在一起,又要身高越来越高,第2个到第5个这4个同学是唯一符合要求的。其它的选法选出的同学人数都要比4少。【数据说明】80%的数据1n1000100%的数据1n50000,每个人的身高都不超过500000。4. 利比亚行动(libyan)题目描述【题目描述】2011年3月16日以来,利比亚爆发的骚乱不断升级,已严重危及到普通民众和各国在利比亚工作的人员的安全。为了尽快救出在利比亚的同胞,根据利比亚的形势,我
11、国政府告诉每个在利比亚的公民,如何行动才能最快地到达安全的地方,然后由我国派出的飞机、轮船、汽车接回国。假设利比亚的地图可以描述为一个n行m列的长方形,待拯救的同胞小A在1行1列处,安全的目标位置在n行m列处。小A每次只能向相邻的上、下、左、右四个方向移动,即如果小A现在的位置是i行j列,小A的下一步位置将到达i-1行j列、i+1行j列、i行j-1列、i行j+1列这四个位置之一,当然小A不能移出n行m列的长方形。利比亚是一个多沙漠且地形复杂的国家,某些位置是很危险的,人不能去。给出利比亚的地图,请告诉小A从起点(1,1)走到终点(n,m)最快需要多少步呢?。输入【输入】输入文件libyan.i
12、n的第一行有2个正整数n,m (1n2000,1m2000),它们之间以一个空格分隔,表示利比亚的地形可以分为n行m列。接下来n行,每行m个字符,分别表示地图中该位置的信息。其中:字符“*”表示这个位置是建筑物、河流、有地雷等人无法走到的位置(保证起点终点不是“*”);小数点“.”表示人可以走到该位置。输出【输出】输出文件libyan.out只有一行,该行只有一个正整数。表示为小A从起点到终点,最快需要多少步。样例输入【样例输入】3 5.*.*.*.*.样例输出【样例输出】8提示【样例说明】小A最快走法是:1行1列2行1列2行2列2行3列1行3列1行4列1行5列2行5列3行5列【数据说明】60%的数据中,1n100,1m100;80%的数据中,1n250,1m250;90%的数据中,1n500,1m500;100%的数据中,1n2000,1m2000。 宁波市计算机学会,2011