文档库 最新最全的文档下载
当前位置:文档库 › noip模拟测试

noip模拟测试

noip模拟测试
noip模拟测试

noip普及组复赛模拟试题26(答案)

1.数字反转(reverse.cpp/c/pas)【问题描述】给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。【输入】输入文件名为reverse.in。 输入共 1 行,一个整数N。 【输出】输出文件名为reverse.out。 输出共 1 行,一个整数,表示反转后的新数。 【输入输出样例1】reverse.in reverse.out 123 321 【输入输出样例2】Reverse.in reverse.out -380 -83 【数据范围】-1,000,000,000 ≤N≤1,000,000,000。 var s3,s1,s2:string; n,i:integer; begin assign(input,'reverse.in');reset(input); assign(output,'reverse.out');rewrite(output); read(s1); n:=length(s1); if s1[1]='-' then begin s2:='-'; for i:=1 to n-1 do s1[i]:=s1[i+1]; delete(s1,n,1); end; n:=length(s1); for i:=1 to n do s3:=s3+s1[n-i+1]; i:=1; while(s3[i]='0')and(length(s3)>1) do delete(s3,1,1); write(s2+s3); close(input);close(output); end. 2.统计单词数(stat.cpp/c/pas)【问题描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章 中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配, 即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1), 如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。 【输入】输入文件名为stat.in,2 行。 第 1 行为一个字符串,其中只含字母,表示给定单词; 第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

noip2013 模拟试题

排名(paiming.pas/c/cpp) [问题描述] 宁波市的小学生们在镇海中学完成程序设计比赛后,老师们批出了所有学生的成 绩,成绩按分数从高到低排名,成绩相同按年级从低到高排(注:纯属虚构,勿对号入座)。现在主办单位想知道每一个排名的学生前,有几位学生的年级低于他(她)。 [输入] 输入文件paiming.in,有若干行: 第1行只有一个正整数n(1<=n<=200),表示参赛的学生人数。 第2行至第n+1行共n行,每行有两个正整数s(0<=s<=400),g(1<=g<=6)。其中第 i+1行的第一个数s表示第i个学生的成绩,第i+1行第二个数g表示第i个学生的的年级。[输出] 输出文件paiming.out有n行,每行只有一个正整数,其中第i行的数k表示排第i名的学生前面有k个学生的排名比他(她)高,且年级比他(她)低。 [样例输入] 5 300 5 200 6 350 4 400 6 250 5 [样例输出] 1 1 3 [数据限制] 50%的数据,每个学生的成绩互不相同 种树(trees.pas) 【问题描述】 一条街的一边有几座房子。因为环保原因居民想要在路边种些树。路边的地区被分割成块,并被编号成1..N。每个部分为一个单位尺寸大小并最多可种一棵树。每个居民想在门前种些树并指定了三个号码B,E,T。这三个数表示该居民想在B和E之间最少种T棵树。当然,B≤E,居民必须记住在指定区不能种多于区域地块数的树,所以T≤E-B+l。居民们想种树的各自区域可以交叉。你的任务是求出能满足所有要求的最少的树的数量。 写一个程序完成以下工作: * 从trees.in读入数据

noip普及组编程模拟试题1

一、问题描述: 考虑在0和1之间的所有分母不大于N的最简分数。下面是N = 5时的情况: 0/1 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 1/1 问题求解: 编写一个程序,对于一个给定的整数N(1≤N≤100),按从小到大的顺序打印出这些分数,同时打印出它们的总的个数。 输入输出示例: N = 5 0/1 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 1/1 TOTAL = 11 二、某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。【输入文件】 输入文件tree.in的第一行有两个整数L(1 <= L <= 10000)和M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。 【输出文件】 输出文件tree.out包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。 【样例输入】 500 3 150 300 100 200 470 471 【样例输出】 298 【数据规模】 对于20%的数据,区域之间没有重合的部分; 对于其它的数据,区域之间有重合的情况。 三.代数表达式的定义如下: 代 数 表 达 式:

noip普及组复赛模拟试题18

1. 话说去年苹果们被陶陶摘下来后都很生气,于是就用最先进的克隆技术把陶陶克隆了好多份>.<然后把他们挂在树上,准备摘取。摘取的规则是,一个苹果只能摘一个陶陶,且只能在它所能摘到的高度以下(即是小于关系)的最高的陶陶,如果摘不到的话只能灰溜溜的走开了>.<给出苹果数目及每个苹果可以够到的高度和各个陶陶的高度,求苹果们都摘完后剩下多少个陶陶…… 【输入格式】第一行为两个数,分别为苹果的数量n和陶陶的数量m(n,m<=2000)以下的n行,分别为各个苹果能够到的最大高度。再接下来的m行,分别为各个陶陶的高度。高度均不高于300。 当然了,摘取的顺序按照输入的“苹果够到的最大高度”的顺序来摘。 【输出格式】输出仅有一个数,是剩下的陶陶的数量 【样例输入】5 5↙9↙10↙2↙3↙1↙6↙7↙8↙9↙10 【样例输出】3 2. 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。 任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分)是:7 279 5 279 这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是:5 279 7 279则按输出错误处理,不能得分。【输入】输入文件scholar.in包含n+1行: 第1行为一个正整数n,表示该校参加评选的学生人数。 第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减1)。 所给的数据都是正确的,不必检验。 【输出】输出文件scholar.out共有5行,每行是两个用空格隔开的正整数, 依次表示前5名学生的学号和总分。 【输入输出样例1】 scholar.in scholar.out 6 90 67 80 87 66 91 78 89 91 88 99 77 67 89 64 78 89 98 6 265 4 264 3 258 2 244 1 237 【输入输出样例2】 scholar.in scholar.out 8 80 89 89 8 265 2 264

NOIP初赛模拟考试题及答案解析修订版

N O I P初赛模拟考试题 及答案解析 集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]

信息学奥林匹克联赛初赛模拟试题 (普及组C语言二小时完成) ●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●● 一.选择一个正确答案代码(A/B/C/D/E),填入每题的括号内(每题1.5分,共30分) 1.被誉为“人工智能之父”的是()。 A.冯·诺依曼。 B.巴贝奇。 C.文顿·瑟夫和卡恩。 D.阿兰·图灵。 E.弗雷德里克·特曼。 2.下列哪个不是CPU(中央处理单元)()。 A.IntelItanium B.DDRSDRAM C.AMDAthlon64 D.AMDOpteron E.IBMPower5 3.常见的邮件传输服务器使用()协议发送邮件。 A.HTTP B.SMTP C.TCP D.FTP E. POP3 4.下列无符号数中,最小的数是()。 10 C.(37)8 D.(2A)16 5.下列哪个软件属于操作系统软件()。 A.MicrosoftWord B.Photoshop C.Foxmail D.WinRAR E.RedHatLinux 6.下列哪个不是计算机的存储设备()。 A.文件管理器 B.内存 C.高速缓存 D.硬盘 E.U盘 7.组成’教授’(jiaoshou)’副教授’(fujiaoshou)与’讲师’(jiangshi) 这三个词的汉字,在GB2312-80字符集中都是一级汉字.对这三个词排序的结果是()。 A教授,副教授,讲师B.副教授,教授,讲师 C讲师,副教授,教授D.副教授,讲师,教授 8.彩色显示器所显示的五彩斑斓的色彩,是由红色、蓝色和()色混合而成的。 A.紫 B.白 C.黑 D.绿 E.橙 9.以下哪个软件不是即时通信软件()。 A.网易泡泡 B.MSNMessenger C.GoogleTalk D.3DSMax E.QQ 10.一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行 相互转换的设备,这种设备是()。 A.调制解调器 B.路由器 C.网卡 D.网关 E.交换机 11.计算机病毒传染的必要条件是()。 A.在内存中运行病毒程序 B.对磁盘进行读写操作 C.在内存中运行含有病毒的程序 D.复制文件

NOIP竞赛模拟试题

NOIP2016普及组复赛模拟赛试卷 普及组 (请选手务必仔细阅读本页内容) 二.提交源程序文件名 三.编译命令(不包含任何优化开关) 注意事项: 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。 3、统一评测时采用的机器配置为:CPU P4 3.0GHz,内存 2G,上述时限以此配置为准。 4、特别提醒:评测在Windows下进行,评测软件为cena8.0。

River Hopscotch (jump.pas/c/cpp) 【问题描述】 每年,奶牛们都举办一种特殊的跳房子游戏,在这个游戏中,大家小心翼翼地在河中的岩石上跳。这个游戏在一条笔直的河中进行,以一块岩石表示开始,以另一块距离起点L单位长度的岩石表示结束。在这两块岩石中间还有N 块岩石,每块的位置距离起点是 Di 个单位长度。 玩这个游戏的时候,每头牛从开始的那块岩石想办法要跳到表示结束的那块岩石上。中间只能在从某块岩石跳跃到另一块岩石,反复的这样跳。当然,不够敏捷的牛永远跳不到终点,最终只能落入河中。 农民 John 为他的牛感到自豪,每年都观看比赛。随着时间的推移,他对于那些胆小的只能跳过很短距离的牛感到厌烦。为了那些牛,其他农民会把岩石的间距弄得很小。他计划移除一些岩石,从而增加奶牛在跳跃时需要的最短距离。他不能移除开始和结束的两块岩石。但是除此之外他可以移除 M 块岩石。 FJ 希望知道他能够增加多少最短跳跃距离。求当他移除了M块岩石后,奶牛从开始跳到结束的岩石,每次跳跃的最短距离至多可以增加到多少。 【输入格式】 第1行: 三个用空格分开的整数,分别是 L, N 和 M。 第2..N+1行: 每行一个整数,表示中间N块岩石的位置,没有两块岩石处于同一位置。 【输出格式】 输出共一行一个整数,表示移除某M块岩石后,相邻岩石间距最小值的最大可能情况。 【输入样例】 25 5 2 2 14 11 21 17 【输出样例】 4 【输入说明】中间有 5 块岩石,坐标 2, 11, 14, 17 和 21。开始岩石在0,结束岩石在25。 【输出解释】没有移除任何岩石之前,最少需要跳2个单位长度,从0到2。当移除了位于 2 和 14的两块岩石后, 需要的最短跳跃距离就变成了4。(从 17 到 21 或从 21 到 25)。 【数据规模】 对于30%的数据: 0≤N≤100; 对于50%的数据: 0≤N≤5,000; 对于100%的数据:1≤L≤1,000,000,000;0≤N≤50,000;0

NOIP复赛模拟题一

NOIP复赛模拟题一 1、与3和5无关的数(num.cpp) 描述 一个正整数x,如果它能被x整除,或者它的十进制表示法中某个位数上的数字为x,则称其为与x相关的数.现求所有小于等于n(n<300)的与x无关的正整数的平方和. <300)的与x无关的正整数的平方和.

输入 输入第一行为一个整数N,表示小白鼠的数目。 下面有N行,每行是一只白鼠的信息。第一个为正整数,表示白鼠的重量,; 第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。 注意:白鼠的重量各不相同。 输出 按照白鼠的重量从小到大的顺序输出白鼠的帽子颜色。 样例输入 3 30 red 50 blue 40 green 样例输出 red green blue 3、滑雪(skate.cpp) 描述 Michael喜欢滑雪百这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6

NOIP信息学初赛模拟试题C

信息学初赛模拟试题(四) 一、选择题:(选出每题正确的答案代码,填在括号里,1—10题为单选题,每小题只有一个正确答案,11—20题为不定项选择题,每小题有一个或一个以上的正确答案,共20题,每题,共30分) 1、二进制数01100100转换成十六进制数是()。 A.32 B.64 C.128 D.100 E.256 2、操作系统是一类重要的系统软件,下面几个软件中,不属于系统软件的是()。A.Java B.MS-DOS C.Linux D.Windows7 E.Unix 3、计算机病毒的传染是以计算机运行和()为基础的,没有这两个条件,病毒是不会传染的。 A.编辑文稿 B.读写磁盘 C.编程序 D.扫描图画 E.打印 4、因特网不属于任何个人,也不属于任何组织。其中在网络知识这一块中有一个英文简写ISP,它的中文意思是()。 A.因特网连接 B.因特网使用 C.因特网设计 D.因特网服务提供者 E.信息传输5、Internet给我们提供了资源共享、浏览、检索信息和远程登录等多种服务,下面几个选项中用于远程登录的是()。 A.WWW B.TCP/IP C.Telnet D.E-mail E.FTP 6、IE是目前流行的浏览器软件,它的工作基础是解释执行用()语言书写的文件。A.VC B.HTML C.BASIC D.HTTP E.VB 7、给出3种排序:插入排序、冒泡排序、选择排序。这3种排序的时间代价分别是()。A.O(n)、O(n2)、O(logn) B.O(logn) 、O(n)、O(n2) C.O(n2)、O(n)、O(logn) D.O(n2)、O(n)、O(n) E.O(n2)、O(n2)、O(n2) 8、一棵完全二叉树的结点总数为18,其叶结点数为()。 A.7个 B.8个 C.9个 D.10个 E.11个 9、在流程图的符号中,菱形框一般作为()。 A.起始框 B.判断框 C.输入输出框 D.处理工作框 E.结速框 10、在解决计算机主机与打印机之间速度不匹配时通常设置一个打印数据缓冲区,主要将要输出打印的数据依次写入该缓冲区,而打印机从该缓冲区中取出数据打印。该缓冲区应该是一个()结构。 A.堆栈 B.数组 C.线性表 D.队列 E.链表 11、多媒体技术中的“多媒体”的含义主要是指如()等多种表达信息的形式。A.磁盘 B.音箱 C.显示器 D.声音 E.图像 12、下面有关计算机知识说明,正确的是()。 A.在WINDOWS98操作系统下,删除磁盘中的文件时都先存放在回收站中 B.FOXMAIL是用于收发电子邮件的工具 C.文件夹组织是一个有层次的树状结构,其中最顶层的是桌面 D.存储器具有记忆能力,其中的信息任何时候都不会丢失 E.为了提高软件的测试效率,应该选择发现错误的可能性大的测试数据 13、对按关键字排序好的线性表进行二分查找,该线性表适合的存储结构为()。A.链接存储 B.索引存储 C.散列存储 D.顺序存储 E.循环存取14、一个栈的输入顺序为1、2、3、4、5,下列序列中可能是栈的输出序列的是()。A.54312 B.24135 C.21543 D.12534 E.12345 15、评价一个算法的好坏有多种指标,下列是算法评价指标的是()。

全国信息学奥林匹克联赛(noip2013)复赛试题

全国信息学奥林匹克联赛(NOIP2013 )复赛 普及组 1.记数问题 (count.cpp/c/pas) 【问题描述】 试计算在区间1 到n 的所有整数中,数字x (0 ≤x ≤ 9)共出现了多少次?例如,在1 到11 中,即在1、2、3、4 、5、6、7、8、9、10、11 中,数字1 出现了4 次。【输入】 输入文件名为count.in。 输入共1 行,包含2 个整数n 、x ,之间用一个空格隔开。 【输出】 输出文件名为count.out。 输出共1 行,包含一个整数,表示x 出现的次数。 【输入输出样例】 count.in count.out 11 1 4 【数据说明】 对于100%的数据,1≤ n ≤ 1,000,000,0 ≤x ≤ 9。 2.表达式求值 (expr.cpp/c/pas) 【问题描述】 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。 【输入】 输入文件为expr.in。 输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+ ”和乘法运算符“*”,且没有括号,所有参与运算的数字均为0 到231-1 之间的整数。输入数据保 证这一行只有0~ 9、+ 、*这12 种字符。 【输出】 输出文件名为expr.out。 输出只有一行,包含一个整数,表示这个表达式的值。注意:当答案长度多于4 位时,请只输出最后4 位,前导0 不输出。 第2 页共5 页

【输入输出样例1】 expr.in expr.out 1+1*3+4 8 【输入输出样例2 】 expr.in expr.out 1+1234567890*1 7891 【输入输出样例3 】 expr.in expr.out 1+1000000003*1 4 【输入输出样例说明】 样例1 计算的结果为8,直接输出8。 样例2 计算的结果为1234567891,输出后4 位,即7891 。 样例3 计算的结果为1000000004,输出后4 位,即4 。 【数据范围】 对于30%的数据,0≤表达式中加法运算符和乘法运算符的总数≤ 100; 对于80%的数据,0≤表达式中加法运算符和乘法运算符的总数≤ 1000; 对于100%的数据,0≤表达式中加法运算符和乘法运算符的总数≤ 100000。 3.小朋友的数字 (number.cpp/c/pas) 【问题描述】 有n 个小朋友排成一列。每个小朋友手上都有一个数字,这个数字可正可负。规定每个 小朋友的特征值等于排在他前面(包括他本人)的小朋友中连续若干个(最少有一个)小朋友手上的数字之和的最大值。 作为这些小朋友的老师,你需要给每个小朋友一个分数,分数是这样规定的:第一个小朋友的分数是他的特征值,其它小朋友的分数为排在他前面的所有小朋友中(不包括他本人), 小朋友分数加上其特征值的最大值。 请计算所有小朋友分数的最大值,输出时保持最大值的符号,将其绝对值对 p 取模后输出。 【输入】 输入文件为number.in。 第一行包含两个正整数n 、p ,之间用一个空格隔开。 第二行包含n 个数,每两个整数之间用一个空格隔开,表示每个小朋友手上的数字。

CCF全国信息学奥林匹克联赛(NOIP2016)模拟赛

1.文件名(程序名和输入输出文件名)必须是英文小写。 2.C/C++选手主程序类型必须是int,返回值必须为0。 3.对于C/C++选手本次考试不开任何优化开关。 4.考试前请膜拜yts和tyc大神,以获得人品加成buff。

1. A+B Problem (plus.cpp/c/pas) 【题目描述】 给定两个十六进制的数,求这两个数的和(用十六进制表示)。 【输入格式】 两个十六进制数a和b,用一个空格隔开。十六进制数由包括0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共15个字符组成按照“逢十六进一”的形式进位。【输出格式】 一个十六进制数,表示两个数之和a+b。 【输入输出样例】 input1 9 1 input2 F E input3 ABCDEF 1 output1 A output2 1D output3 ABCDF0 【数据规模与约定】 对于20%的数据,整个运算过程中不出现除十进制数以外的数,且运算过程无进位;对于50%的数据,1<=length(a)<=100,1<=length(b)<=100; 对于100%的数据,1<=length(a)<=10^4,1<=length(b)<=10^4。

2. 十字炸弹 (bomb.cpp/c/pas) 【题目描述】 你是QDEZ神秘组织中的一名特工。在一次行动任务中,你需要摧毁一间房间中的一些重要目标。 你获得了这个房间的地图:这是一个n*m大小的矩形房间,里面各处分散分布着许多目标。你的攻击武器是一个特殊的十字炸弹——这个炸弹可以在引爆时摧毁在炸弹所在行以及在炸弹所在列的所有目标。例如你在(3,4)点安置了这个十字炸弹,引爆时它就可以同时炸毁位于(3,5)、(3,7)、(5,4)等这些点的目标,却对位于(4,5)这样的点的目标毫无作用。 为了行动更加迅捷,不被敌人发现,组织只给了你一个如上所述的十字炸弹。这个炸弹可以被安放在空地上或是目标上。而你,要用这一个十字炸弹,摧毁掉整个房间里所有的目标。在哪个位置安放才能炸毁所有的目标呢?这就要你来决定了。 【输入格式】 第一行是两个正整数n和m,表示该房间的长和宽。 从第二行开始一直到第n+1行,每行m个字符,表示一个矩阵,这个矩阵即为房间的地图。每一个字符有两种可能——“#”表示该位置是需要摧毁的目标,“.”表示此位置是空地。 【输出格式】 第一行是一个字符串,如果存在某个位置安放炸弹后可以摧毁所有目标则输出“YES”(全部为大写,不带引号),否则输出“NO”。 如果存在某个位置可以摧毁所有目标,在第二行输出两个正整数x和y,表示可以在(x,y)点放置炸弹。如果有多个位置都可以,输出字典序最小的一组(输出x最小的一组,如果有多组解的x相等,则输出其中y最小的)。 【输入输出样例】 input1 3 4 .#.. .... .#.. input2 3 3 ..# .#. #.. output1 YES 1 2 output2 NO

noip普及组复赛模拟试题17(附答案)

图书馆馆长正犯愁呢,原来,有一堆的书要他整理,每本书都有一个书号(<=32767),现在他有一本书,这本书的书号为K(<=32767),现在他要找出一本书号比这本书大的书和书号比这本小的书(但都要最接近图书馆馆长已有的书号),将找到的这两本书的书号加起来,并算出加起来以后的数是否为素数 Input 第一行二个数为N,K,表示几本书以及手中书的书号(<=32767) 第二行开始有N个整数,表示这些书的书号 Output 第一行一个数,表示两本书书号加起来的和 第二行一个字符,表示和是否为素数,若是则输出"Y"否则输出"F"(引号不打出)Sample Input 6 5 6 4 5 3 1 20 Sample Output 10 F program ex1148; var n,k,i,x,s:integer; a:array[0..32767] of integer; f:boolean; begin readln(n,k); fillchar(a,sizeof(a),0); for i:=1 to n do begin read(x); a[x]:=1; end; s:=0; for i:=k+1 to 32767 do if a[i]<>0 then begin s:=s+i;break; end; for i:=k-1 downto 1 do if a[i]<>0 then begin s:=s+i;break; end; f:=true; for i:=2 to trunc(sqrt(s)) do if s mod i=0 then begin f:=false;break;end; writeln(s); if f=true then write('Y') else write('F'); end. 输入12 7 8 12 18 7 11 3 20 15 14 26 21 16 输出11 Y 输入21 10

NOIP模拟试题三

NOIP模拟试题三 普及组复赛 题目名称手机数字积木家族书本整理 程序名称mobile.pas/c/cpp brick.pas/c/cpp famdy.pas/c/cpp book.pas/c/cpp 输入文件mobile.in brick.in family.in book.in 输出文件mobile.out brick.out family.out book.out 时间限制1秒1秒1秒1秒 一、手机(mobile.pas/c/cpp) 【问题描述】 一般的手机的键盘是这样的: 12abc3def 4ghi5jkl6mno 7pqrs8tuv9wxyz *0# 要按出英文字母就必须要按数字键多下。例如要按出x就得按9两下,第一下会出w,而第二下会把w变成x。0键按一下会出一个空格。 你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。 【问题输入】 一行一个句子,只包含英文小写字母和空格,且不超过200个字符。 【问题输出】 一行一个整数,表示按键盘的总次数。 【样例输入】 i have a dream 【样例输出】 23 【数据范围】 如题目所示 二、数字积木(brick.pas/c/cpp) 【问题描述】 小明有一款新式积木,每个积木上都有一个数,一天小明突发奇想,要是把所有的积木排成一排,所形成的数目最大是多少呢? 你的任务就是读入n个数字积木,求出所能形成的最大数。 【问题输入】 第一行是一个整数n(n≤1000),接下来n行每行是一个正整数。 【问题输出】 所能形成的最大整数

【样例输入】 3 13 131 343 【样例输出】 34313131 【数据范围】 30%的数据,n≤l0,每个数<103。50%的数据,n≤l00。100%的数据,n≤1000,每个数<10200。 三、家族(family.pas/c/cpp) 【问题描述】 在一个与世隔绝的岛屿上,有一个有趣的现象:同一个家族的人家总是相邻的(这里的相邻是指东南西北四个方向),不同的家族之间总会有河流或是山丘隔绝,但同一个家族的人不一定有相同姓氏。现在给你岛上的地图,求出岛上有多少个不同的家族。岛上的地图有n行,每行有若干列,每个格子中要么是“”,表示大海,要么是“*”,表示河流或山丘,要么是小写字母,表示一户人家的姓氏。 【问题输入】 第一行是个数字N,表示下面信息的行数。接下来是N行字符,每行由小写字母和*号组成,有些行的最前面也可能包含若干连续的空格,表示这些区域是大海,每一行最多不超过200个字符。 【问题输出】 一个数字,表示家族数。 【样例输入】 4 *zlw**pxh l*zlwk*hx* w*tyy**yyy zzl 【样例输出】 3 【数据范围】 10%的数据,n≤1。30%的数据,n≤10。100%的数据,n≤100每一行最多不超过200个字符。 四、书本整理(book.pas/c/cpp) 【问题描述】 小明的书架上放了许多书,为了使书架变得整洁,小明决定整理书架,他将所有书按高度大小排列,这样排了之后虽然整齐了许多,但小明发现,书本的宽度不同,导致书架看上去还是有些凌乱。小明把这个凌乱值定义为相邻两本书的宽度差的绝对值的和。 例如有4本书: 1×2 5×3 2×4

NOIP模拟试题

全国信息学奥林匹克联赛(NOIP2011)复赛 提高组 模拟模拟试题试题试题(二试) (二试)(请选手务必仔细阅读本页内容) 一.题目概况 中文题目名称密码子翻译苹果二叉树青蛙王子的口令 英文题目与子目录名cell apple order 可执行文件名cell apple order 输入文件cell.in apple.in order.in 输出文件cell.out apple.out order.out 每个测试点时限1秒1秒1秒测试点数目101010每个测试点分值101010附加样例文件有有 有 结果比较方式全文比较(过滤行末空格及文末回车) 题目类型 传统 传统 传统二.提交源程序文件名 三.运行内存限制 对于pascal 语言cell.pas apple.pas order.pas 对于C 语言cell.c apple.c order.c 对于C++语言 cell.cpp apple.cpp order.cpp 内存上限 128M 128M 128M

1.密码子翻译 (cell cell.pas/c/cpp) .pas/c/cpp)【问题描述】 DNA 是一切细胞生物的遗传物质。它能指导蛋白质的合成,从而控制细胞的新陈代谢和生物的性状。 中心法则(genetic central dogma )是所有有细胞结构的生物所遵循的法则,它的主要内容是遗传信息从DNA 传递给mRNA ,再从mRNA 传递给蛋白质的转录和翻译的过程(如图)。 mRNA 是由许多核糖核苷酸组成的链状分子,但这些核糖核苷酸不外乎4种:腺嘌呤核糖核苷酸(A ),鸟嘌呤核糖核苷酸(G ),胞嘧啶核糖核苷酸(C )和尿嘧啶核糖核苷酸(U )。mRNA 上三个相邻的核糖核苷酸序列叫做密码子,一个密码子可以翻译成一个氨基酸,且密码子不重叠。已知:一条mRNA 只能翻译成若干种氨基酸,并且知道决定这些氨基酸的密码子。给出一条mRNA 的核糖核苷酸序列,请你计算出它最多能翻译成多少氨基酸。【输入】 输入文件名为cell.in 。 第一行,一个长度为l 的字符串,表示核糖核苷酸序列。 接下来若干行,每行一个密码子,只有这些密码子能够翻译成氨基酸。相同的密码子不重复出现。 输入数据仅由A 、G 、C 、U 四个大写字母组成。【输出】 输出文件名为cell.out 。 只有一个正整数N ,表示给出的核糖核苷酸序列组成的mRNA 最多能翻译成氨基酸的数目。 【输入输出样例1】【输入输出样例 1说明】 在核糖核苷酸序列ACACGAUC 中标出密码子:ACACGAUC 这样最多只能选取CAC 、 AUC 两个密码子翻译,即输出2。 cell cell.in .in cell.out ACACGAUC CAC AUC CGA 2

NOIP2017提高组初赛模拟题

第二十三届全国青少年信息学奥林匹克联赛初赛 提高组 PASCAL语言模拟试题 竞赛时间:2017年 10 月 14 日 14:30~16:30 选手注意: ●试题纸共有 13 页,答题纸共有 2 页,满分 100 分。请在答题纸上作答,写 在试题纸上的一律无效。 ●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共 15 题,每题 1.5 分,共计 22.5 分;每题有且仅有一个 正确选项) 1.1956年()授予肖克利(William Shockley)、巴丁(John Bardeen) 和布拉顿(Walter Brattain),以表彰他们对半导体的研究和晶体管效应的发 现。 A. 诺贝尔物理学奖 B. 约翰·冯·诺依曼奖 C. 图灵奖 D. 高德纳奖(Donald E. Knuth Prize) 2.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照 CapsLock、 字母键 A、字母键 S 和字母键 D 的顺序来回按键,即 CapsLock、A、S、D、S、 A、CapsLock、A、S、D、S、A、CapsLock、A、S、D、S、A、……,屏幕上输 出的第 81 个字符是字母()。 A. A B. S C. D D. A 3.二进制数 00101100 和 01010101 异或的结果是()。 A. 00101000 B. 01111001 C. 01000100 D. 00111000 4.与二进制小数 0.1 相等的八进进制数是()。 A. 0.8 B. 0.4 C. 0.2 D. 0.1 5.以比较作为基本运算,在 N 个数中找最小数的最少运算次数为()。 A. N B. N-1 C. N2 D. log N 6.表达式 a*(b+c)-d 的后缀表达形式为()。 A. abcd*+- B. abc+*d- C. abc*+d- D. -+*abcd 7.一棵二叉树如右图所示,若采用二叉树链表存储该二叉 树(各个结点包括结点的数据、左孩子指针、右孩子指 针)。如果没有左孩子或者右孩子,则对应的为空指针。 那么该链表中空指针的数目为()。 A. 6 B. 7 C. 12 D. 14 8.G 是一个非连通简单无向图,共有 28 条边,则该图至少有()个顶点。

NOIP复赛模拟试题I.doc

NOIP 复赛模拟试题(I ) 1. 医院设置(hospital.cpp ) 【问题描述】 设有一棵二叉树(如下閔,其中圈中的数字表示结点中居民的人口,圈边h 数字表示结 点编号。现在要求在某个结点上建立一个返院,使所奋佔W 所走的路程之和为最小,同吋约 定,相邻结点之 M 的距离为1。就木阁而言,若医院建在1处,则距离和 =4+12+2*20+2*40=136;若民院建在 3 处, 则距离和=4*2+13+20+40=81…… 【输入格式(hospital.in )] 其中第一行一个整数n,表示树的结点数(n<=100)。接K 来的n 行 每行描述了 一个结点的状况,包含三个整数,整数之间川空格(一 个或多个)分隔,其中:第一个数为店民人口数;第二个数为左链 接,为0表示无链接;第三个数为右链接,为0表示无链接。 【输出格式(hospital.out )】 该文件只有一个整数,表示最小距离和。 【样例输入】 5 1323 400 12 4 5 20 0 0 40 0 0 【样例输出】 81 2. 而税(area.cpp ) 【问题描述】 编程计算由“ * ”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中 水平线和垂直线交点的数目。如右K 图所示,在10*10的二维数组中,有“围住了 15个点, 因此面积为15。在输入中,为了方便起见使用“1”来代替右图中的“*”。。 【输入格式(area.in )】 ° 输入数据保证仅冇一个10*10的01矩阵 ° 【输出格式(area.out )】 o 0 0 0 0 一个数,表示面积 【样例输入】

0000000000 0000111000 0000100100 00000 10010 0010001010 ()10101 0 0 1 0 010******* 0010000100 000 1111100 0000000000 【样例输出】 15 3.极值问题(number.cpp) 【问题描述】 已知m、n为整数,且满足下列两个条件: ①m、nG { 1 , 2 ,…,k},即Km, n^k ②(n2—m*n —m2) 2=1 你的任务是:编程输入正整数k (l

NOIP模拟试题

A 六边形(hexagons.pas/c/cpp) TL:1S ML:256MB 【Description】 有一个由小正六边形拼成的大六边形,对边的长度是相同的(形状如图) (图中所示的是a=2,b=3,c=4的情况) 现在给出a, b, c,求构成六边形的小正六边形的数量 【Input】 一行三个整数a,b,c 【Output】 一个整数表示答案 【Sample Input】 2 3 4 【Sample Output】 18 【Hint】 2 <= a, b, c <= 1000

B 统计(count.pas/c/cpp) TL:1S ML:128MB 【Description】 求:所有的N位数中,有多少数各位数字的乘积是恰好K。请注意,这里的N位数是可以有前导零的。比如01,02视为二位数,但是他们各位数字的乘积都是0。 【Input】 一行两个整数N,K 【Output】 一个行一个整数表示结果。 【Sample Input】 2 3 【Sample Output】 2 【Sample Input】 2 0 【Sample Output】 19 【Hint】 样例解释1:13、31。 样例解释2:00, 01, 02 .., 09,10, 20,..90 对于20%:N <= 6。

对于50%:N<=16 存在另外30%:K=0。 对于100%:N <= 50,0 <= K <= 10^9。

C 幻方(magicsquare.pas/c/cpp) TL:1S ML:128MB 【Description】 给定N*N个数,把它们填入N*N的方格中,使每行每列和两个斜对角线里数的和都相等。【Input】 第一行一个正整数N 第二行N*N个整数,代表要填入幻方中的数 【Output】 N行每行N个整数,用空格隔开,代表填好的幻方。 如果有多组解,输出任意一组即可。 保证有解。 【Sample Input1】 3 9 9 9 9 9 9 9 9 9 【Sample Output1】 9 9 9 9 9 9 9 9 9 【Sample Input2】 3 1 2 3 4 5 6 7 8 9 【Sample Output2】

2014noip复赛模拟练习11(答案)

新学年就要开始了,爸爸把N元钱给了小青,让他购买一批文具,并作了以下要求:只能买圆珠笔、铅笔和铅笔芯,并且每样至少买一支,总数要超过30支,而且钱要全部花完。当小青去到文具店时,发现圆珠笔8角钱一支、铅笔2角钱一支、铅笔芯1角钱一支。小青怎么买才能符合爸爸的要求呢?请你编个程序帮他算出符合购买要求的所有方案总数。 Input 一个整数N,表示购买文具一共的元数。(1 <= N <= 50) Output 一个整数,即符合购买要求的所有方案总数。 Sample Input 8 Sample Output 135 Source program ex1294; var n,i,j,k,sum:integer; begin readln(n); n:=n*10; sum:=0; for i:=1 to n div 8 do for j:=1 to n div 2 do begin k:=n-i*8-j*2; if (i+j+k>30) and (k>1) then inc(sum); end; writeln(sum); end. 任意一个数都可以由1、2、3三个数组合而成。如4有以下7种组合方案: 1 + 1 + 1 + 1 1 + 1 + 2 1 + 2 + 1 2 + 1 + 1 2 + 2 1 + 3 3 + 1 你的问题来了,对于给定的一个数,请你计算出这个整数可以有多少个组合方案,其和由1、2、3组合而成。 数据输入 输入包含多组数据,每一组数据中,输入数据的第一行为一个整数n(1<=n<=20),要分解的数。

数据输出 这个整数的分解的组合数。 样例输入 4 样例输出 7 分析 用f(n)表示将n按照1、2、3分解的方法数 当n=1时, f(1)=1; {1} 当n=2时, f(2)=2; {1+1},{2} 当n=3时, f(3)=3; {1+1+1},{1+2},{2+1},{3} 当 n=k时 (k>=4) 考虑最后添加的一个数字可能是1、2、3。 所以很容易推出递推公式 f(k)=f(k-1)+f(k-2)+f(k-3). var f:array[1..20] of longint; i,n:longint; procedure init; begin assign(input,'divide.in'); assign(output,'divide.out'); reset(input); rewrite(output); end; procedure endit; begin close(input); close(output); end; begin init; readln(n); f[1]:=1; f[2]:=2;

相关文档