NOIP复赛模拟题一

合集下载

Pascal历届NOIP复赛试题(1)-分析

Pascal历届NOIP复赛试题(1)-分析

第12讲-历届NOIP复赛试题(1)模拟试题1. Cantor表(cantor.pas/c/cpp)【问题描述】现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。

他是用下面这一张表来证明这一命题的:我们以Z字形给上表的每一项编号。

第一项是1/1,然后是1/2,2/1,3/1,2/2,…【输入】整数N(1≤N≤10000000)【输出】表中的第N项【样例输入】7【样例输出】- 1 -1/4【分析】基础题,模拟。

首先确定所在斜行,然后针对奇数行和偶数行进行计算。

【参考代码】varn,x:longint ;beginassign(input,'cantor.in');reset(input);assign(output,'cantor.out');rewrite(output);readln(n);x:=0;repeat//确定所在的斜行inc(x);n:=n-x ;until n<=0;if x mod2=0then write((x+n),'/',(1-n))//确定如何输出else writeln((1-n),'/',(x+n));close(input);close(output );end.2. 回文数(huiwen.pas/c/cpp)【问题描述】若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

例如:给定一个10进制数56,将56加56(即把56从右向左读),得到121是一个回文数。

又如:对于10进制数87:STEP1:87+78 = 165 STEP2:165+561 = 726STEP3:726+627 = 1353 STEP4:1353+3531 = 4884在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。

写一个程序,给定一个N(2<=N<=10,N=16)进制数M,求最少经过几步可以得到回文数。

NOIP复赛模拟试题I.doc

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 1323400 12 4 5 20 0 0 40 0 0【样例输出】812. 而税(area.cpp )【问题描述】编程计算由“* ”号围成的下列图形的面积。

面积计算方法是统计*号所围成的闭合曲线中 水平线和垂直线交点的数目。

如右K 图所示,在10*10的二维数组中,有“围住了 15个点, 因此面积为15。

在输入中,为了方便起见使用“1”来代替右图中的“*”。

【输入格式(area.in )】°输入数据保证仅冇一个10*10的01矩阵° 【输出格式(area.out )】o0 00 0 一个数,表示面积 【样例输入】000000000000001110000000100100 0000010010 0010001010()10101 0 0 1 0010*******0010000100 00011111000000000000【样例输出】153.极值问题(number.cpp)【问题描述】已知m、n为整数,且满足下列两个条件:①m、nG { 1 , 2 ,…,k},即Km, n^k②(n2—m*n —m2) 2=1你的任务是:编程输入正整数k (l<k<109),求一组满足上述两个条件的m、n,并且使m2+n2的值最大。

NOIP提高组复赛题目

NOIP提高组复赛题目

第一题题库NOIP20071.统计数字(count.pas/c/cpp)【问题描述】某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。

已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

【输入】输入文件count.in包含n+1行:第1行是整数n,表示自然数的个数。

第2~n+1行每行一个自然数。

【输出】输出文件count.out包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。

每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

【输入输出样例】【限制】40%的数据满足:1<=n <=100080%的数据满足:1<=n <=50000100%的数据满足:1<=n <=200000,每个数均不超过1 500 000 000(1.5*109)NOIP20081. 笨小猴(wird.pas/c/cpp)【问题描述】笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。

但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn 是单词中出现次数最多的字母的出现次数,minn 是单词中出现次数最少的字母的出现次数,如果maxn-minn 是一个质数,那么笨小猴就认为这是个Lucky Word ,这样的单词很可能就是正确的答案。

【输入】输入文件word.in 只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。

【输出】输出文件word.out 共两行,第一行是一个字符串,假设输入的的单词是Lucky Word ,那么输出“Lucky Word ”,否则输出“No Answer ”;第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn 的值,否则输出0。

noip普及组复赛试题及答案

noip普及组复赛试题及答案

noip普及组复赛试题及答案一、选择题1. 在计算机科学中,以下哪个概念与数据结构最相关?A. 算法B. 操作系统C. 网络协议D. 编译原理答案:A2. 以下哪种排序算法的时间复杂度为O(n^2)?A. 快速排序B. 归并排序C. 堆排序D. 冒泡排序答案:D3. 在C++中,以下哪个关键字用于定义类?A. structB. unionC. enumD. typedef答案:A4. 以下哪个选项不是数据库管理系统(DBMS)的特性?A. 数据持久性B. 数据共享C. 数据加密D. 数据独立性答案:C5. 在计算机网络中,TCP和UDP协议分别属于哪一层?A. 传输层B. 应用层C. 网络层D. 物理层答案:A二、填空题1. 在计算机程序中,______ 用于定义数据的存储方式和组织形式。

答案:数据结构2. 一个算法的时间复杂度为O(1),表示该算法的执行时间与输入数据的规模______。

答案:无关3. 在C++中,______ 是一种特殊的类,它提供了一种方式来定义数据类型。

答案:typedef4. 数据库管理系统(DBMS)通常包含数据定义语言(DDL)、数据操纵语言(DML)和______。

答案:数据控制语言(DCL)5. 在计算机网络中,______ 协议负责在网络层进行数据包的路由选择。

答案:IP三、简答题1. 请简述面向对象编程(OOP)的三个基本特征。

答案:封装、继承、多态2. 描述二分查找算法的基本步骤。

答案:二分查找算法的基本步骤包括:首先确定数组是有序的,然后取中间元素与目标值比较,如果中间元素等于目标值,则查找成功;如果目标值小于中间元素,则在左半部分继续查找;如果目标值大于中间元素,则在右半部分继续查找,直到找到目标值或查找范围为空。

四、编程题1. 编写一个函数,实现对整数数组的排序。

答案:以下是一个简单的冒泡排序算法实现:```cppvoid bubbleSort(int arr[], int n) {for (int i = 0; i < n-1; i++) {for (int j = 0; j < n-i-1; j++) {if (arr[j] > arr[j+1]) {swap(arr[j], arr[j+1]);}}}}```2. 编写一个函数,实现计算一个整数的阶乘。

NOIP2021复赛提高组模拟试题

NOIP2021复赛提高组模拟试题

NOIP2021复赛提高组模拟试题ccf全国信息学奥林匹克联赛(noip2021)复赛day1第二轮CCF国家信息学奥林匹克联盟(noip 2022)提高组day1(请仔细阅读本页)一、题目概况中文题目名称英文题目与子目录名可执行文件名输入文件名输出文件名每个测试点时限测试点数目每个测试点分值附加样例文件结果比较方式题目类型运行内存上限二、提交C++语言的源程序文件名,C语言的源程序文件名,Pascal语言的源程序文件名三、编译命令(不包含优化开关)对于C++语言对于C语言对于Pascal语言注意事项:1.文件名(程序名和输入/输出文件名)必须使用小写英语。

2、c/c++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。

3.国家统一评估使用的机器配置为cpuamdathlon(TM)64x2dualcorecpu5200+、2.71ghz和2G内存。

以上时限以本配置为准。

4.仅提供Linux格式的其他示例文件。

5、特别提醒:评测在noilinux下进行。

6.为了便于评估,请使用您姓名的拼音作为文件夹名称,并将原始程序直接保存在文件夹中,无需创建新的子文件夹。

g++-opfpf.cpp-g++-otoytoy.cpplmclmgcc-opfpf.c-lmgcc-lmfpcpf.pasfpctoy.pasg++-orunningrunning.cpp-lmgcc-orunningrunning.c-lmfpcrunning.paspf.cpppf.cpf.pastoy.cpptoy.ctoy.pasrunning.cpprunning.crunning.pas斐波那契玩具跑步pftoyrunningpftoyrunningpf.intoy.inrunning.inpf.outtoy.outrunning.out1s1s1s102 0201055是是是全文比较(忽略行末空格和行尾回车)传统传统传统128mb128mb128mb第1页,共5页CCF国家信息学奥林匹克联盟(noip2022)半决赛第1天1.斐波那契(pf.pas/c/cpp)【问题描述】他是斐波那契迷。

NOIP复赛模拟练习题

NOIP复赛模拟练习题

NOIP复赛模拟练习题(一)1.埃及分数源文件:egfranc.pas/c/cpp可执行文件:egfranc.exe输入文件:egfranc.in输出文件:egfranc.out古代埃及人喜欢用分子为1的分数,即使是普通的分数他们也喜欢将它转为若干个分子为1的分数的和。

如2/5,他们习惯表示为:1/3+1/15。

现要求你将输入的一个分子不为1的真分数转为若干个分子为1的不同的分数的和,输出要求按分母由小到大的顺序,并且是分母尽可能的小。

输入两个自然数A、B,分别表示分子和分母,输出相应的埃及分数。

样例:egfranc.in2 5egfranc.out2/5=1/3+1/152.N个因子的最小自然数源文件:minnat.pas/c/cpp可执行文件:minnat.exe输入文件:minnat.in输出文件:minnat.out一个自然数总有若干个因子,如6有4个因子:1,2,3,6。

现要求你对于给定的自然数n(1<n<=10000),求出有n个因子的最小自然数。

输入就一个数n,输出有n个因子的最小自然数。

样例:minnat.in15minnat.out1443.数字拆成K份源文件:numkd.pas/c/cpp可执行文件:numkd.exe输入文件:numkd.in输出文件:numkd.out将一个正整数n拆成k个正整数之和,如n=5,k=2时,不同的拆分方法有两种:5=1+4=2+3。

现要求根据给定的n和k,求出可能的不同拆分的数目。

输入就一行两个数,分别表示n和k(1<n<1000,0<k<=n),输出就一个数字,表示不同的拆分方法数目。

样例:numkd.in5 2numkd.out24、好心的出租车司机源文件:taxi.pas/c/cpp可执行文件:taxi.exe输入文件:taxi.in输出文件:taxi.out题目描述一位出租车司机向你抱怨:城市发展太快,公路越来越多,他已经疲于计算行驶路线,于是求助你开发一个自动导航的工具。

NOIP复赛模拟题

NOIP复赛模拟题

模拟题11. 1.分数(mark.cpp)高考分数刚刚公布.共有n人参加考试,为了便于填报志愿,教育部把所有考生的成绩平均分为m档.保证n是m的倍数.考试成绩名次在(k-1)*(n/m)+1名到k*(n/m)名的考生被分在第k档(k=1,2,3…..m).并列第i名的所有考生都算第i名.小Y刚参加完高考,迫切想知道自己被分在第几档,你能帮助他吗?输入格式:第一行两个整数n,m<=1000,保证n是m的倍数.接下来n行,每行一个整数ai表示第i 个考生的成绩.最后一行,一个整数x,1<=x<=n,表示询问第i 个考生被分在哪一档.输出格式:一行一个数,表示被分在哪一档.输入输出样例:mark.in3 36326516243mark.out32. 2.背单词(words.cpp)英语四级考试临近了,小Y却发现他已经把以前学的单词几乎忘光了.好在现在离考试还有一段时间.小Y决定从现在开始夜以继日地背单词,也就是一天24小时地背. 今天的日期(时间)是yyyy年mm月dd日hh时min分.这之间的所有时间小Y都用来背单词了,那么考试之前他最多能背多少个单词呢?时间紧张,小Y只管数量不管质量.当然有的单词长一些,有的单词短一些.长单词难背一些,短的单词好背一些.根据小Y的经验,他能一眼看出背某一个单词需要的时间,以分钟记. 现在给你一个字典,请你挑出最多的单词使小Y能在考前背出来.输入格式:第一行一个整数n,表示字典中的单词数,n<=5000.接下来n行,每行一个整数表示背这个单词需要的时间,以分钟记.小于等于10000,(这个单词本身是什么并不重要)接下来两行依次是当前时间和考试时间.时间给出的格式是:yyyy-mm-dd-min.例如:2010-04-22-02:00,采用24小时制,每天从00:00-23:59.年份从0000到9999.输出格式:一行,一个数,表示考前小Y最多能背出的单词数.输入输出样例:words.in2112007-06-23-11:592007-06-23-12:00words.out13溶液模拟器(simulator.cpp)小Y到网上下载了一个溶液配置模拟器。

NOIP复赛普及组模拟题1

NOIP复赛普及组模拟题1

题目概况1.星图题目描述:天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。

如果一个星星的左下方(包含正左和正下)有k颗星星,就说这颗星星是k级的。

比如,在上面的例图中,星星5是3级的(1,2,4在它左下)。

星星2,4是1级的。

例图中有1个0级,2个1级,1个2级,1个3级的星。

给定星星的位置,输出各级星星的数目。

输入文件:第1行一个整数N(1<=N<=15000),表示星星的数目。

接下来N行给出每颗星星的坐标,两个整数X,Y(0<=X,Y<=32000),不会有星星重叠。

星星按Y坐标增序列出,Y坐标相同的按X坐标增序列出。

输出文件:N行,每行一个整数,分别是0级,1级,2级……N-1级的星星的数目。

全国信息学奥林匹克联赛复赛普及组模拟赛SANPLE INPUT:51 15 17 13 35 5SANPLE OUTPUT:12112.电话薄【问题描述】不同的人对自己的电话号码簿有不同的需求。

有人喜欢开门见山,打头就是电话号码;有人喜欢在电话簿的开始几页写上自己的格言;有人喜欢在电话簿上先画上自己的杰作;又比如Black家族的人则喜欢在电话簿的第一页写上自己的格言,第二页是目录,第三页开始是电话记录;而White印象派世家的人喜欢在电话簿的头两页和最后两页都画上自己的杰作,中间几页是电话记录。

PIG电话簿制作中心刚刚收到了一封Jim Black的来信,要求帮他制作一本能让他满意的电话簿。

他已经在信中说明了需要被写入电话簿的N个电话号码,要求制作一本能包含所有电话记录的电话簿。

每条记录有两行,第一行是电话号码,第二行空着留给Jim本人填写,比如写“这是我从小穿着一条开裆裤长大的朋友Tim White”“这是我亲爱的丈母娘”。

而每页的记录数目当然也不能太多,Jim要求最多仅能有2K行。

这个城市的电话号码有仅有4位,主要是因为人口太少了。

而普通家庭的电话打头的不能是0和8,因为这些是都是留给政府作为特殊服务的号码,比如报警电话0110,救护电话0120,声讯服务台8888。

noip普及组复赛入门训练1答案

noip普及组复赛入门训练1答案

noip普及组复赛入门训练1答案PASCAL复习21. 字符统计(文件名ZFTJ.PAS)读入一组字符,以“?”作为结束标志,统计其中元音字母、辅音字母、数字和其它符号个数(“?”作为结束标志,不计算个数)。

如输入字符为SouA56#s?,则输出YY=3,FY=2,SZ=2,QT=1。

输入输出样例:输入:SouA56#sEenTk3&?输出:YY=5,FY=5,SZ=3,QT=2var s1,S2,S3,S4,t:longint;c:char;begin S1:=0;S2:=0;S3:=0;S4:=0;while c<>'?' dobegin read(c);if ((c>='a') and (c<='z')) or ((c>='A') AND (C<='Z')) THENif (c='a') or (c='e') or (c='i') OR (c='o') or (c='u') or(c='A') OR (c='E') OR (c='I') OR (c='O') OR (c='U')THEN S1:=S1+1 ELSE S2:=S2+1ELSEIF (c>='0') and (c<='9') then s3:=s3+1ELSE S4:=S4+1;end;writeln('YY=',S1,'FY=',S2,'SZ=',S3,'QT=',S4-1);END.2.取数(QS.PAS)问题描述:我们来玩一个游戏:自然数1到N,按顺序列成一排,你可以从中取走任意个数,但是相邻的两个不可以同时被取走。

NOIP2003普及组(复赛)

NOIP2003普及组(复赛)

NOIP2003普及组复赛试题题一、乒乓球(Table.pas)【问题背景】国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。

其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。

华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响。

在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。

【问题描述】华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。

比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):WWWWWWWWWWWWWWWWWWWWWWLW在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。

而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。

如果一局比赛刚开始,则此时比分为0比0。

你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。

【输入格式】每个输入文件包含若干行字符串(每行至多20个字母),字符串有大写的W、L和E组成。

其中E表示比赛信息结束,程序应该忽略E之后的所有内容。

【输出格式】输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。

其中第一部分是11分制下的结果,第二部分是21分制下的结果,两部分之间由一个空行分隔。

【输入样例】WWWWWWWWWWWWWWWWWWWWWWLWE【输出样例】11:011:01:121:02:1题二、数字游戏(Game.pas)【问题描述】丁丁最近沉迷于一个数字游戏之中。

这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。

游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分为m个部分,各部分内的数字相加,相加所得的m个结果对10取模后再相乘,最终得到一个数k。

NOIP提高组复赛试题

NOIP提高组复赛试题

全国信息学奥林匹克联赛(2014)复赛提高组11.生活大爆炸版石头剪刀布()【问题描述】石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。

如果两个人出拳一样,则不分胜负。

在《生活大爆炸》第二季第8集中出现了一种石头剪刀布的升级版游戏。

升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。

蜥蜴人:《星际迷航》中的反面角色。

这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。

现在,小A和小B尝试玩这种升级版的猜拳游戏。

已知他们的出拳都是有周期性规律的,但周期长度不一定相等。

例如:如果小A以“石头-布-石头-剪刀-蜥蜴人-斯波克”长度为6的周期出拳,那么他的出拳序列就是“石头-布-石头-剪刀-蜥蜴人-斯波克-石头-布-石头-剪刀-蜥蜴人-斯波克-……”,而如果小B 以“剪刀-石头-布-斯波克-蜥蜴人”长度为5的周期出拳,那么他出拳的序列就是“剪刀-石头-布-斯波克-蜥蜴人-剪刀-石头-布-斯波克-蜥蜴人-……”已知小A和小B一共进行N次猜拳。

每一次赢的人得1分,输的得0分;平局两人都得0分。

现请你统计N次猜拳结束之后两人的得分。

【输入】输入文件名为。

第一行包含三个整数:N,,,分别表示共进行N次猜拳、小A出拳的周期长度,小B出拳的周期长度。

数与数之间以一个空格分隔。

第二行包含个整数,表示小A出拳的规律,第三行包含个整数,表示小B出拳的规律。

其中,0表示“剪刀”,1表示“石头”,2表示“布”,3表示“蜥蜴人”,4表示“斯波克”。

数与数之间以一个空格分隔。

【输出】输出文件名为。

输出一行,包含两个整数,以一个空格分隔,分别表示小A、小B的得分。

【输入输出样例1】【输入输出样例2】【数据说明】对于100%的数据,0 < N ≤200,0 < ≤200,0< ≤200。

2.联合权值()【问题描述】无向连通图G有n个点,1条边。

点从1到n依次编号,编号为i的点的权值为,每条边的长度均为1。

NOIP2011复赛模拟卷(一)

NOIP2011复赛模拟卷(一)

NOIP 2011复赛练习卷(一)1、最优贸易(trade.pas/c/cpp)【问题描述】C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市。

任意两个城市之间最多只有一条道路直接相连。

这m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为 1 条。

C 国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。

但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。

商人阿龙来到 C 国旅游。

当他得知同一种商品在不同城市的价格可能会不同这一信息之后,便决定在旅游的同时,利用商品在不同城市中的差价赚回一点旅费。

设C国n个城市的标号从1~ n,阿龙决定从1号城市出发,并最终在n号城市结束自己的旅行。

在旅游的过程中,任何城市可以重复经过多次,但不要求经过所有n个城市。

阿龙通过这样的贸易方式赚取旅费:他会选择一个经过的城市买入他最喜欢的商品——水晶球,并在之后经过的另一个城市卖出这个水晶球,用赚取的差价当做旅费。

由于阿龙主要是来 C 国旅游,他决定这个贸易只进行最多一次,当然,在赚不到差价的情况下他就无需进行贸易。

假设C国有5个大城市,城市的编号和道路连接情况如下图,单向箭头表示这条道路为单向通行,双向箭头表示这条道路为双向通行。

假设 1~n 号城市的水晶球价格分别为 4,3,5,6,1。

阿龙可以选择如下一条线路:1->2->3->5,并在 2 号城市以 3 的价格买入水晶球,在 3号城市以 5 的价格卖出水晶球,赚取的旅费数为 2。

阿龙也可以选择如下一条线路 1->4->5->4->5,并在第 1 次到达 5 号城市时以1 的价格买入水晶球,在第2 次到达 4 号城市时,以 6 的价格卖出水晶球,赚取的旅费数为 5。

现在给出 n 个城市的水晶球价格、m 条道路的信息(每条道路所连接的两个城市的编号以及该条道路的通行情况)),请你告诉阿龙,他最多能赚取多少旅费。

NOIP 2012复赛 模拟练习卷(一)

NOIP 2012复赛 模拟练习卷(一)

NOIP 2012复赛模拟练习卷(一)1.序列(sequence.cpp/c/pas)【问题描述】有一个整数序列,它的每个数各不相同,我们不知道它的长度(即序列中的整数个数)是多少,但我们知道,在某些区间中至少有多少个整数,用区间(Li,Ri,Ci)来描述,表示这个整数序列中至少有Ci个数来自区间[Li,Ri]。

给定若干个这样的区间,问这个整数序列的长度最少能为多少?【输入】(sequence.in)第1行:一个正整数N,表示区间个数。

接下来N行:每行三个正整数Li、Ri和Ci,描述一个区间。

【输出】(sequence.out)输出一个数,表示该整数序列的最小长度。

【输入样例】44 5 16 10 37 10 35 6 1【输出样例】4【数据规模】N<=1000, 0<=Li<=Ri<=1000, 1<=Ci<=Ri-Li+12.call (call.cpp/c/pas)【问题描述】有M座房屋排列在一条直线上。

房屋之间会互相打电话,现在,在一些房屋之间安装了监听器,每当两个位于监听器两侧的房屋之间打了电话,监听器就计一次数。

现在知道每个监听器的位置和计数,问总共最少可能打了多少个电话。

【输入】第一行上有两个整数N和M(N<M≤1000000000),N表示监听器个数,M表示房屋数。

接下来N行,每行两个整数P i和C i,表示第i个监听器位于房屋P i和P i+1之间,计数C i次(0≤Ci ≤100000)。

【输出】一行,一个整数,表示最少可能打了多少个电话。

【样例输入一】3 43 12 2【样例输出一】2【样例输入二】2 31 232 17【样例输出二】23【样例输入三】3 97 28 33 4【样例输出三】53.planting (planting.cpp/c/pas)【问题描述】在一个笛卡尔平面坐标系里(X轴向右是正方向,Y轴向上是正方向),有N(1<=N<=10)个矩形,第i个矩形的左上角坐标是(x1,y1),右下角坐标是(x2,y2)。

NOIP普及组复赛模拟试题(一)

NOIP普及组复赛模拟试题(一)

NOIP普及组复赛模拟试题一PROBLEM 1:二进制字典排序字符串(Filename:Seq.pas Inputfile:seq.in Outputfile:seq.out)[题目描述]假设字符串的长度为N (0 < N < 44), 仅由0与1组成,没有二个1是相邻的。

110就不是一个合法的,0101就是一个合法的四位的字符串,将它们按字典顺序排列下来,请问第K个(0 < K < 1000000000)字符串是哪一个,如果K的值超过的N位字符串的总个数,就输出-1。

[Input]一行包含两个正整数N 和 K。

[Output]相应的字符串或-1。

Sampleinput Output3 1 000PROBLEM 2: 非琐碎数(Filename:Trivial.pas Inputfile:trivial.in Outputfile:trivial.out)[题目描述]规定正整数的琐碎度为它的除了自身以外的所有约数的和除以它自己的值。

如10的琐碎度为0.8=(1+2+5)/10, 20的琐碎度为1.1 = (1 + 2 + 4 + 5 + 10) / 20。

给你两个数 0 < I <= J < 1000000,找出满足 I <= N <= J 的 N,使 N 是琐碎度最小的整数。

[Input]两个数 I 和J, 0 < I ≤ J ≤ 1000000。

[Output]输出N。

Sampleinput output24 28 25PROBLEM 3:石头分堆(Filename:Stone.pas Inputfile:stone.in Outputfile:stone.out)[题目描述]你有一堆石头,重量为w[1],w[2]..w[n]。

把他们分成两堆,使两堆重量的差最小。

[Input]第一个数n(1<=n<=20)石头的个数。

接下来n个数W1…Wn(1<=Wi<=100000)石头的重量。

历年noip普及组复赛试题

历年noip普及组复赛试题

历年noip普及组复赛试题
NOIP(全国青少年信息学奥林匹克竞赛)是中国的一项信息学竞赛活动,包括普及组和提高组两个组别。

普及组主要面向初中生和高中生,复赛试题是选拔普及组的参赛选手的关键环节。

以下是历年NOIP普及组复赛试题的一些例子:
1. 2019年NOIP普及组复赛试题:
题目1,给定一个长度为N的字符串S,求出它的最长回文子串的长度。

题目2,给定一个N×M的迷宫,起点为(1, 1),终点为(N, M),求从起点到终点的最短路径长度。

2. 2018年NOIP普及组复赛试题:
题目1,给定一个长度为N的整数序列A,求出其中的最长上升子序列的长度。

题目2,给定一个N×N的矩阵,求出从左上角到右下角的
最短路径长度,每次只能向右或向下移动。

3. 2017年NOIP普及组复赛试题:
题目1,给定一个长度为N的整数序列A,求出其中的最长
连续递增子序列的长度。

题目2,给定一个N×M的棋盘,每个格子上有一个非负整数,求从左上角到右下角的路径,使得路径上的数字之和最小。

4. 2016年NOIP普及组复赛试题:
题目1,给定一个长度为N的整数序列A,求出其中的最长
连续递减子序列的长度。

题目2,给定一个N×M的迷宫,起点为(1, 1),终点为(N, M),求从起点到终点的路径数。

以上只是一些例子,每年的试题都会涉及不同的知识点和算法,题目难度也会有所不同。

参赛选手需要具备扎实的编程基础和算法
思维,才能在复赛中取得好成绩。

希望以上内容能对你有所帮助。

noip复赛模拟试题

noip复赛模拟试题

noip复赛模拟试题第一题:最大字符(zdzf.c/cpp)读入一串由大写、小写、数字组成的字符(<256位),输出ASCII 表值最大的那个字符出来。

例如:读入:abeADEf3输出:e第二题:盖房子(gfz.c/cpp)题目正文【问题描述】永恒の灵魂最近得到了面积为n*m的一大块土地(高兴ING^_^),他想在这块土地上建造一所房子,这个房子必须是正方形的。

但是,这块土地并非十全十美,上面有很多不平坦的地方(也可以叫瑕疵)。

这些瑕疵十分恶心,以至于根本不能在上面盖一砖一瓦。

他希望找到一块最大的正方形无瑕疵土地来盖房子。

【输入格式】输入文件第一行为两个整数n,m(1<=n,m<=1000),接下来n 行,每行m个数字,用空格隔开。

0表示该块土地有瑕疵,1表示该块土地完好。

【输出格式】一个整数,最大正方形的边长。

【输入样例】4 40 1 1 11 1 1 00 1 1 01 1 0 12第三题:IQ(iq.c/cpp)题目正文【问题描述】根据世界某权威学会的一项调查,学信息学的学生IQ非常高。

举个最好的例子,如果我们把学信息学的一些学生调去学数学,那么两个竞赛的学生平均IQ都会提升!!现在给出一群数学竞赛全体学生的IQ和信息学竞赛全体学生IQ,问最多能把几个学信息学的学生调去学数学,而两个竞赛的学生平均IQ都有提升呢?每次只调一个学生,而且每次调配,两个竞赛的学生平均IQ都要提升。

【输入格式】输入数据的第一行一个正整数N,代表数学竞赛班学生的数目。

N <= 100接下来一行,有N个正整数,代表每个数学学生的IQ(1 到 200 之间)。

然后一个整数M,代表信息学竞赛班学生数目 M <= 100接下来一行,有M一个正整数,代表每个信息学竞赛班学生的IQ (1 到 200 之间)输入数据保证信息学学生平均IQ高于数学学生。

输出格式:输出只有一行,一个正整数,代表能从信息学调去学数学的学生的个数。

第十届NOIP复赛试题及答案

第十届NOIP复赛试题及答案

第十届全国青少年信息学奥林匹克联赛复赛试题及答案一、不高兴的津津(unhappy.pas/dpr/c/cpp)【问题描述】津津上初中了。

妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。

另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。

但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。

假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。

请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

【输入文件】输入文件unhappy.in包括七行数据,分别表示周一到周日的日程安排。

每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

【输出文件】输出文件unhappy.out包括一行,这一行只包含一个数字。

如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 7分别表示周一,周二,周三,周四,周五,周六,周日)。

如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

【样例输入】5 36 27 25 35 40 40 6【样例输出】3二、花生采摘(peanuts.pas/dpr/c/cpp)【问题描述】鲁宾逊先生有一只宠物猴,名叫多多。

这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。

鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。

在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图1)。

有经验的多多一眼就能看出,每棵花生植株下的花生有多少。

为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。

”我们假定多多在每个单位时间内,可以做下列四件事情中的一件:1) 从路边跳到最靠近路边(即第一行)的某棵花生植株;2) 从一棵植株跳到前后左右与之相邻的另一棵植株;3) 采摘一棵植株下的花生;4) 从最靠近路边(即第一行)的某棵花生植株跳回路边。

NOIP2010-普及组复赛-第一题-数字统计

NOIP2010-普及组复赛-第一题-数字统计

NOIP2010-普及组复赛-第⼀题-数字统计题⽬描述 Description请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数。

⽐如给定范围[2, 22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出现 1 次,在数 21 中出现 1 次,在数 22 中出现 2 次,所以数字 2 在该范围内⼀共出现了 6次。

输⼊输出格式 Input/output输⼊格式:输⼊⽂件名为 two.in。

输⼊共 1 ⾏,为两个正整数 L 和 R,之间⽤⼀个空格隔开。

输出格式:输出⽂件名为 two.out。

输出共 1 ⾏,表⽰数字 2 出现的次数。

输⼊输出样例 Sample input/output样例测试点#1输⼊样例:【输⼊样例1】2 22【输⼊样例2】2 100输出样例:【输出样例1】6【输出样例2】20说明 description1 ≤ L ≤R≤ 10000。

思路:两重循环,判断在这个范围内的每个数是否包含2(每个位数除以10是否为2),计数器++就得了,记得每次要除以10;代码如下:1 #include <stdio.h>2int main()3 {4int n,m,i,k;5int ans=0;6//freopen("two.in","r",stdin);7//freopen("two.out","w",stdout);8 scanf("%d%d",&n,&m);9for(i=n;i<=m;i++)10 {11 k=i;12while(k>0)13 {14if(k%10==2) ans++;15 k=k/10;16 }17 }18 printf("%d\n",ans);19return0;20 }。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

NOIP复赛模拟题一
1、与3和5无关的数(num.cpp)
描述
一个正整数x,如果它能被x整除,或者它的十进制表示法中某个位数上的数字为x,则称其为与x相关的数.现求所有小于等于n(n<300)的与x无关的正整数的平方和.
<300)的与x无关的正整数的平方和.
</300)的与X无关的正整数的平方和.
输入
输入为一行,正整数n,(n<300)
输出
输出小于等于n的与3和5无关的正整数的平方和
样例输入
8
(8^2+7^2+4^2+2^2+1^2)
样例输出
134
2、小白鼠再排队(mouse.cpp)
描述
N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子。

现在称出每只白鼠的重量,要求按照白鼠重量从小到大的顺序输出它们头上帽子的颜色。

帽子的颜色用“red”,“blue”等字符串来表示。

不同的小白鼠可以戴相同颜色的帽子。

白鼠的重量用整数表示。

输入
输入第一行为一个整数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
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。

在上面的例子中,一条可滑行的滑坡为24-17-16-1。

当然
25-24-23-...-3-2-1更长。

事实上,这是最长的一条。

输入
输入的第一行表示区域的行数R和列数C(1 <= R,C <= 100)。

下面是R
行,每行有C个整数,代表高度h,0<=h<=10000。

输出
输出最长区域的长度。

样例输入
5 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
样例输出
25
4、养猪创业(pig.cpp)
描述
话说现在猪肉价格这么贵,杭州湾的孩子们也开始了养猪生活(哈哈)。

现在说说养猪典型nick。

说来也奇怪,他养的猪一出生第二天开始就能每天中午生一只小猪,而且生下来的竟然都是母猪。

不过光生小猪也不行,nick采用了一个很奇特的办法来管理他的养猪场:
对于每头刚出生的小猪,在他生下第二头小猪后立马被杀掉,卖到超市里。

假设在创业的第一天,nick只买了一头刚出生的小猪,请问,在第N天晚上,nick的养猪场里还存有多少头猪?
输入
测试数据的第一行包含有一个正整数T,代表测试数据的个数。

接下来有T组测试,每组测试数据占一行,分别有一个正整数N代表nick创业的第N天。

(N≤20)
输出
对于每组数据,请在一行里输出第N天晚上养猪场里猪的数目。

样例输入
2
2
3
样例输出
2
3。

相关文档
最新文档