CCFCSP认证第1-10次真题(含模拟试题1套)试题编号试题名称试题编号试题名称201312-1出现次数最多的数(模拟)201503-1图像旋转(第4次)201312-2ISBN号码(模拟)201503-2数字排序(第4次)201312-3最大的矩形(模拟)201503-3节日(第4次)201312-4有趣的数(模拟)201503-4网络延时(第4次)201312-5I’mstuck!(模拟)201503-5最小花费(第4次)201403-1相反数(第1次)201509-1数列分段(第5次)201403-2窗口(第1次)201509-2日期计算(第5次)201403-3命令行选项(第1次)201509-3模板生成系统(第5次)201403-4无线网络(第1次)201509-4高速公路(第5次)201403-5任务调度(第1次)201509-5最佳文章(第5次)201409-1相邻数对(第2次)201512-1数位之和(第6次)201409-2画图(第2次)201512-2消除类游戏(第6次)201409-3字符串匹配(第2次)201512-3画图(第6次)201409-4最优配餐(第2次)201512-4送货(第6次)201409-5拼图(第2次)201512-5矩阵(第6次)201412-1门禁系统(第3次)201604-1折点计数(第7次)201412-2Z字形扫描(第3次)201604-2俄罗斯方块(第7次)201412-3集合竞价(第3次)201604-3路径解析(第7次)201412-4最优灌溉(第3次)201604-4游戏(第7次)201412-5货物调度(第3次)201604-5网络连接(第7次)201609-1最大波动(第八次)201612-1中间数(第九次)201609-2火车购票(第八次)201612-2工资计算(第九次)201609-3炉石传说(第八次)201612-3权限查询(第九次)201609-4交通规划(第八次)201612-4压缩编码(第九次)201609-5祭坛(第八次)201612-5卡牌游戏(第九次)201703-1分蛋糕(第十次)201703-2学生排队(第十次)201703-3Markdown(第十次)201703-4地铁修建(第十次)201703-5引水入城(第十次)试题编号:201312-1试题名称:出现次数最多的数时间限制:1.0s内存限制:256.0MB问题描述:问题描述给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式输入的第一行只有一个正整数n(1≤n≤1000),表示数字的个数。输入的第二行有n个整数s1,s2,…,sn(1≤si≤10000,1≤i≤n)。相邻的数用空格分隔。输出格式输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。样例输入610110203020样例输出10试题编号:201312-2试题名称:ISBN号码时间限制:1.0s内存限制:256.0MB问题描述:问题描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。识别码的计算方法如下:首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+……+2×9=158,然后取158mod11的结果4作为识别码。编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出是正确的ISBN号码。输入格式输入只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。输出格式输出一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。样例输入0-670-82162-4样例输出Right样例输入0-670-82162-0样例输出0-670-82162-4试题编号:201312-3试题名称:最大的矩形时间限制:1.0s内存限制:256.0MB问题描述:问题描述在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1≤i≤n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3,1,6,5,2,3。请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。输入格式第一行包含一个整数n,即矩形的数量(1≤n≤1000)。第二行包含n个整数h1,h2,…,hn,相邻的数之间由空格分隔。(1≤hi≤10000)。hi是第i个矩形的高度。输出格式输出一行,包含一个整数,即给定直方图内的最大矩形的面积。样例输入6316523样例输出10试题编号:201312-4试题名称:有趣的数时间限制:1.0s内存限制:256.0MB问题描述:问题描述我们把一个数称为有趣的,当且仅当:1.它的数字只包含0,1,2,3,且这四个数字都出现过至少一次。2.所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。3.最高位数字不为0。因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:2031和2301。请计算恰好有n位的有趣的数的个数。由于答案可能非常大,只需要输出答案除以1000000007的余数。输入格式输入只有一行,包括恰好一个正整数n(4≤n≤1000)。输出格式输出只有一行,包括恰好n位的整数中有趣的数的个数除以1000000007的余数。样例输入4样例输出3试题编号:201312-5试题名称:I’mstuck!时间限制:1.0s内存限制:256.0MB问题描述:问题描述给定一个R行C列的地图,地图的每一个方格可能是'#','+','-','|','.','S','T'七个字符中的一个,分别表示如下意思:'#':任何时候玩家都不能移动到此方格;'+':当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格;'-':当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非'#'方格移动一格;'|':当玩家到达这一方格后,下一步可以向上下两个方向相邻的一个非'#'方格移动一格;'.':当玩家到达这一方格后,下一步只能向下移动一格。如果下面相邻的方格为'#',则玩家不能再移动;'S':玩家的初始位置,地图中只会有一个初始位置。玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格;'T':玩家的目标位置,地图中只会有一个目标位置。玩家到达这一方格后,可以选择完成任务,也可以选择不完成任务继续移动。如果继续移动下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格。此外,玩家不能移动出地图。请找出满足下面两个性质的方格个数:1.玩家可以从初始位置移动到此方格;2.玩家不可以从此方格移动到目标位置。输入格式输入的第一行包括两个整数R和C,分别表示地图的行和列数。(1≤R,C≤50)。接下来的R行每行都包含C个字符。它们表示地图的格子。地图上恰好有一个'S'和一个'T'。输出格式如果玩家在初始位置就已经不能到达终点了,就输出“I'mstuck!”(不含双引号)。否则的话,输出满足性质的方格的个数。样例输入55--+-+..|#...|##S-+-T####.样例输出2样例说明如果把满足性质的方格在地图上用'X'标记出来的话,地图如下所示:--+-+..|#X..|##S-+-T####X试题编号:201403-1试题名称:相反数时间限制:1.0s内存限制:256.0MB问题描述:问题描述有N个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a和-a为一对相反数)。输入格式第一行包含一个正整数N。(1≤N≤500)。第二行为N个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。输出格式只输出一个整数,即这N个数中包含多少对相反数。样例输入5123-1-2样例输出2试题编号:201403-2试题名称:窗口时间限制:1.0s内存限制:256.0MB问题描述:问题描述在某图形操作系统中,有N个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。现在我们希望你写一个程序模拟点击窗口的过程。输入格式输入的第一行有两个正整数,即N和M。(1≤N≤10,1≤M≤10)接下来N行按照从最下层到最顶层的顺序给出N个窗口的位置。每行包含四个非负整数x1,y1,x2,y2,表示该窗口的一对顶点坐标分别为(x1,y1)和(x2,y2)。保证x1x2,y12。接下来M行每行包含两个非负整数x,y,表示一次鼠标点击的坐标。题目中涉及到的所有点和矩形的顶点的x,y坐标分别不超过2559和1439。输出格式输出包括M行,每一行表示一次鼠标点击的结果。如果该次鼠标点击选择了一个窗口,则输出这个窗口的编号(窗口按照输入中的顺序从1编号到N);如果没有,则输出IGNORED(不含双引号)。样例输入3400441155226611004405样例输出211IGNORED样例说明第一次点击的位置同时属于第1和第2个窗口,但是由于第2个窗口在上面,它被选择并且被置于顶层。第二次点击的位置只属于第1个窗口,因此该次点击选择了此窗口并将其置于顶层。现在的三个窗口的层次关系与初始状态恰好相反了。第三次点击的位置同时属于三个窗口的范围,但是由于现在第1个窗口处于顶层,它被选择。最后点击的(0,5)不属于任何窗口。试题编号:201403-3试题名称:命令行选项时间限制:1.0s内存限制:256.0MB问题描述:问题描述请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后可能会包含一些不是选项的参数。选项有两类:带参数的选项和不带参数的选项。一个合法的无参数选项的形式是一个减号后面跟单个小写字母,如-a或-b。而带参数选项则由两个由空格分隔的字符串构成,前者的格式要求与无参数选项相同,后者则是该选项的参数,是由小写字母,数字和减号组成的非空字符串。该命令行工具的作者提供给你一个格式字符串以指定他的命令行工具需要接受哪些选项。这个字符串由若干小写字母和冒号组成,其中的每个小写字母表示一个该程序接受的选项。如果该小写字母后面紧跟了一个冒号,它就表示一个带参数的选项,否则则为不带参数的选项。例如,ab:m:表示该程序接受三种选项,即-a(不带参数),-b(带参数),以及-m(带参数)。命令行工具的作者准备了若干条命令行用以测试你的程序。对于每个命令行,你的工具应当一直向后分析。当你的工具遇到某个字符串既不是合法的选项,又不是某个合法选项的参数时,分析就停止。命令行剩余的未分析部分不构成该命令的选项,因此你的程序应当忽略它们。输入格式输入的第一