noip2008提高组复赛试题

合集下载

NOIP2008信息奥赛提高组试题与答案

NOIP2008信息奥赛提高组试题与答案

NOIP2008信息奥赛提高组试题与答案(Pascal语言)第14届信息学奥赛试题单项选择1. 在以下各项中,()不是操作系统软件。

A.Solaris B.Linux C.Sybase D.Windows Vista E.Symbian2. 微型计算机中,控制器的基本功能是()。

A. 控制机器的各个部件协调工作B.实现算数运算与逻辑运算C.存储各种控制信息D. 获取外部信息E.存放程序和数据3. 设字符串S=“Olympic”,S的非空字串的数目是()。

A.29B.28C.16D.17E.74. 完全2叉树有2*N-1的结点,则它的叶子结点数目是()。

A.N-1B.2*NC.ND.2^N-1E.N/25. 将数组{8,23,4,16,77,-5,53,100}中元素从大到小按顺序排序,每次可以交换任意两个元素,最少要交换()次。

A.4B.5C.6D.7E.86.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈,出栈顺序为b,d,c,f,e,a那么栈容量至少该是()A.6B.5C.4D.3E.27.与十进制数28.5625相等的四进制数是()A.123.21B.131.22C.130.22D.130.21E.130.208.递归过程和函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。

A.队列B.多维数组C.线性表D.链表E.栈9.TCP/IP 是一组构成互联网基础的网络协议,字面上包括两组协议:传输控制协议(TCP)和网际互联协议(IP)。

TCP/IP协议把Internet网络系统描述成具有4个层次功能的网络模型,其中提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能的是()。

A.链路层B.网络层C.传输层D.应用层E.会话层10.对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分查找,等概率情况下,查找成功的平均查找长度(平均比较次数)是()。

NOIP2008提高组复赛试题-推荐下载

NOIP2008提高组复赛试题-推荐下载

测试点数目
10
每个测试点分值 10
比较方式
全文比较
matches matches matches.in matches.out 1秒 10 10 全文比较
message message message.in message.out 1秒 10 10 全文比较
twostack twostack twostack.in twostack.out 1秒 10 10 全文比较
message.in
33 039
34 285 570 【限制】
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术通关,1系电过,力管根保线据护敷生高设产中技工资术艺料0不高试仅中卷可资配以料置解试技决卷术吊要是顶求指层,机配对组置电在不气进规设行范备继高进电中行保资空护料载高试与中卷带资问负料题荷试2下卷2,高总而中体且资配可料置保试时障卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并22工且22作尽22下可22都能22可地护以缩1关正小于常故管工障路作高高;中中对资资于料料继试试电卷卷保破连护坏接进范管行围口整,处核或理对者高定对中值某资,些料审异试核常卷与高弯校中扁对资度图料固纸试定,卷盒编工位写况置复进.杂行保设自护备动层与处防装理腐置,跨高尤接中其地资要线料避弯试免曲卷错半调误径试高标方中高案资等,料,编试要5写、卷求重电保技要气护术设设装交备备置底4高调、动。中试电作管资高气,线料中课并敷3试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

1995-2008 历届NOIP试题及详解

1995-2008 历届NOIP试题及详解

例如:N=6 时,有:
A=(4,3,0,5,1,2)
此时,数组 A 的编码定义如下:
A[0]的编码为 0;
A[i]的编码为:在 A[0],A[1],…,A[i-1]中比 A[i]的值小的个数(i=1,2,…,N-1)
∴ 上面数组 A 的编码为: B=(0,0,0,3,1,2)
程序要求解决以下问题:
③ 给出数组 A 后,求出其编码。 ④ 给出数组 A 的编码后,求出 A 中的原数据。 <2> 灯的排列问题: 设在一排上有 N 个格子(N≤20),若在格子中放置有不同颜色的灯,每种灯的个数记为 N1,N2,……Nk(k 表示不同颜色灯的个数)。 放灯时要遵守下列规则:
b 输入:N=10 B=(0,1,2,3,4,5,6,7,8,9)
输出编码: A=(0,1,2,3,4,5,6,7,8,9)
c 输入:N=7 B=(0,0,0,0,4,5,6)
输出编码: A=(3,2,1,0,4,5,6)
<7> 本题共 30 分(10%+10%+10%)
④ 数据输入: N=6
P1=R
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
RRR
BB
Y
NOI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛
分区联赛复赛试题(高中组)
(上机编程,完成时间:210 分钟)
<1> 编码问题:
设有一个数组 A:ARRAY[0..N-1] OF INTEGER;
数组中存放的元素为 0~N-1 之间的整数,且 A[i]≠A[j](当 i≠j 时)。

NOIP历届(2007-2008)提高组 初赛 C语言 试题

NOIP历届(2007-2008)提高组 初赛 C语言 试题

NOIP历届(2007-2008)提高组初赛C语言试题提高组 C 语言二小时完成)●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。

每题有且仅有一个正确答案.)。

1. 在以下各项中。

()不是CPU的组成部分。

A. 控制器B. 运算器C. 寄存器D. ALUE. RAM2. BIOS(基本输入输出系统)是一组固化在计( )上一个ROM芯片上的程序。

A. 控制器B. CPUC. 主板D. 内存条E. 硬盘3. 在下面各世界顶级的奖项中,为计算机科学与技术领域作出杰出贡献的科学家设立的奖项是()。

A. 沃尔夫奖B. 诺贝尔奖C. 菲尔兹奖D. 图灵奖E. 南丁格尔奖4.在编程时(使用任一种高级语言,不一定是C),如果需要从磁盘文件中输入一个很大的二维数组(例如1000*1000 的double 型数组),按行读(即外层循环是关于行的)与按列读(即外层循环是关于列的)相比,在输入效率上()。

A. 没有区别B. 有一些区别,但机器处理速度很快,可忽略不计C. 按行读的方式要高一些D. 按列读的方式要高一些E. 取决于数组的存储方式。

5.在C语言中,表达式21^2的值是()A. 441B. 42C.23D.24E.256.在C语言中,判断a不等于0且b不等于0的正确的条件表达式是()A. !a==0 || !b==0 B. !((a==0)&&(b==0)) C. !(a==0&&b==0)D. a!=0 || b!=0E. a && b7.某个车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。

已知某时刻该车站状态为空,从这一时刻开始的出入记录为:“进,出,进,进,进,出,出,进,进,出”。

假设车辆入站的顺序为1,2,3,……,则车辆出站的顺序为()。

A. 1, 2, 3, 4, 5B. 1, 2, 4, 5, 7C. 1, 4, 3, 7, 6D. 1, 4, 3, 7, 2E. 1, 4, 3, 7, 58.高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。

NOIP2008提高组复赛题解-文档资料

NOIP2008提高组复赛题解-文档资料

思路: 枚举两加数,计算所需火柴棒是否等于n。枚举 范围0~1000。 总结: 这也是比较水的一道题,数据规模较小,算法 简单,比赛中clude <fstream> #define I_F "matches.in" #define O_F "matches.out" #define MAX 1000 using namespace std; const short match[10]={6,2,5,5,4,5, 6,3,7,6}; //10个数字所需火柴棒
思路:
统计单词中每个字母的出现次数,挑出最多的次数和 最少的次数(不包括0次),相减判断是否为质数即可。 判断质数时可以写函数判断,也可以把100以内的质数 列成常量数组直接判断,因为单词最多只有100个字母。 需要注意的是输出时的LWNA四个字母要大写。 * 总结: 这是一道送分题,没有什么难度,需要注意的细节也 不多,所以在比赛中是一定要拿满分的。
long ans; short n;
void Input(); int Matches(int x); void Search(); void Output(); int main() { Input(); Search(); Output(); } void Input() { ifstream fin(I_F); fin>>n; fin.close(); }
输入格式: 输入文件matches.in共一行,有一个整数n(n<=24)。 * 输出格式: 输出文件matches.out共一行,表示能拼成的不同等 式的数目。
样例1 输入:
14 输出: 2 解释: 2个等式为0+1=1和1+0=1。

NOIP2008提高组复赛模拟试题

NOIP2008提高组复赛模拟试题

全国青少年信息学奥林匹克联赛复赛模拟试题湖南省长沙市第一中学周祖松1.无限序列(infinit.pas/c/cpp)【问题描述】我们按以下方式产生序列:1、开始时序列是: "1" ;2、每一次变化把序列中的 "1" 变成 "10" ,"0" 变成 "1"。

经过无限次变化,我们得到序列"1011010110110101101..."。

总共有 Q 个询问,每次询问为:在区间A和B之间有多少个1。

任务写一个程序回答Q个询问输入第一行为一个整数Q,后面有Q行,每行两个数用空格隔开的整数a, b。

输出共Q行,每行一个回答约定∙ 1 <= Q <= 5000∙ 1 <= a <= b < 263样例分析:我们先看看序列变化规律,S1 = "1", S2 = "10", S3 = "101", S4 = "10110", S5 = "10110101", 等等. Si 是 S(i+1)的前缀。

序列Si 是由序列 S(i-1)和 S(i-2), 连接而成的。

即Si = Si-1 + Si-2 (实际上上是Fibonacci数列)。

找到规律以后,我们可以可以用递归的方法求出从从位置1到位置X之间所有的1的个数,用一个函数F计算,结果为f(b)-f(a-1)。

时间复杂度为: O(Q * log MAX_VAL)此题需要先找出数学规律,再进用递归实现。

主要考查选手的数学思维能力和递归程序的实现。

源程序:constnn=92; //进行92次的数列扩展后,数列长度就会超过给定的数据范围,varf,ft:array[0..nn] of int64;q,i,j,l1,l2:longint;a,b:qword;procedure prapre;{预处理}var i:longint;beginf[0]:=1;f[1]:=1;ft[0]:=0;ft[1]:=1;for i:=2 to nn dobeginf[i]:=f[i-1]+f[i-2];ft[i]:=ft[i-1]+ft[i-2];end;end;function find(a:int64;ll:longint):int64;{求这个数列的前a个有多少个1}beginif a=0 then exit(0);find:=0;if a=f[ll] then find:=ft[ll] elseif a<=f[ll-1] then find:=find(a,ll-1)else find:=ft[ll-1]+find(a-f[ll-1],ll-2);end;beginassign(input,'infinit.in');reset(input);assign(output,'infinit.out');rewrite(output);prapre;readln(q);for i:=1 to q dobeginreadln(a,b);writeln(find(b,nn)-find(a-1,nn));end;close(input);close(output);end.2.删数(remove.pas/c/cpp)【问题描述】有N个不同的正整数数x1, x2, ... x N排成一排,我们可以从左边或右边去掉连续的i个数(只能从两边删除数),1<=i<=n,剩下N-i个数,再把剩下的数按以上操作处理,直到所有的数都被删除为止。

【noip2008年提高组题二】火柴棒等式

【noip2008年提高组题二】火柴棒等式

【noip2008年提高组题二】火柴棒等式问题描述:在火柴棒等式中,每个数字由若干火柴棒组成,要求组成一个等式。

等式中有加号、等号和两个数字,它们之间各自由若干火柴棒连接起来。

若干数字的顺序和下标之和相等,则等式成立。

已知通过7根火柴棒可以得到的合法的等式有12个,求合法的所有等式。

解题思路:本题为全排列问题的一个典型应用。

根据题目给出的火柴棒等式的要求,遍历所有的7根火柴棒的全排列,验证是否能组成合法的火柴棒等式,并将符合条件的等式输出即可。

以下为详细步骤:1. 构建火柴棒数量列表,用于表示每个数字所需的火柴棒数量。

列表的下标表示数字,列表的值表示火柴棒数量;2. 生成7根火柴棒的全排列,并将每一个排列结果作为一个可能的等式;3. 遍历所有可能的等式,判断是否符合题目要求:等式中有加号、等号和两个数字,它们之间各自由若干火柴棒连接起来。

若干数字的顺序和下标之和相等,则等式成立;4. 将符合条件的等式输出。

以下为Python代码实现:def dfs(total, cur):if cur == 7:judge(total)returnfor i in range(10):if num[i] > 0:num[i] -= 1dfs(total + ch[cur][i], cur + 1)num[i] += 1def judge(total):for i in range(10):if num[i] != 0:returna, b, c = total[0], total[1], total[2]if a + b == c and a <= b:res.append(total)ch = [[6, 2, 5, 5, 4, 5, 6, 3, 7, 6] for _ in range(7)]num = [2, 5, 5, 4, 5, 6, 3, 7, 6, 6]res = []dfs([], 0)for i in range(len(res)):print(f'{res[i][0]} + {res[i][1]} = {res[i][2]}')在上述代码中,ch为火柴棒数量列表,num为每个数字所需的火柴棒数量。

【精选资料】NOIP提高组复赛试题与简解转载

【精选资料】NOIP提高组复赛试题与简解转载

Day1铺地毯【问题描述】为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。

一共有n 张地毯,编号从1 到n。

现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。

地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。

注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。

【输入】输入文件名为 carpet.in。

输入共 n+2 行。

第一行,一个整数 n,表示总共有n 张地毯。

接下来的 n 行中,第i+1 行表示编号i 的地毯的信息,包含四个正整数a,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标(a,b)以及地毯在x轴和y 轴方向的长度。

第 n+2 行包含两个正整数x 和y,表示所求的地面的点的坐标(x,y)。

【输出】输出文件名为 carpet.out。

输出共 1 行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出-1。

【输入输出样例 1】【输入输出样例说明】如下图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,覆盖点(2,2)的最上面一张地毯是3 号地毯。

【输入输出样例 2】【输入输出样例说明】如上图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,点(4,5)没有被地毯覆盖,所以输出-1。

【数据范围】对于 30%的数据,有n≤2;对于 50%的数据,0≤a, b, g, k≤100;对于 100%的数据,有0≤n≤10,000,0≤a, b, g, k≤100,000。

【一句话题意】给定n个按顺序覆盖的矩形,求某个点最上方的矩形编号。

【考察知识点】枚举【思路】好吧我承认看到图片的一瞬间想到过二维树状数组和二维线段树。

置答案ans=-1,按顺序枚举所有矩形,如果点在矩形内则更新ans。

注意题中给出的不是对角坐标,实际上是(a,b)与(a+g,b+k)。

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

全国信息学奥林匹克联赛(NOIP2008)复赛
提高组
一、题目概览
二、提交源程序文件名
三、编译命令(不包含任何优化开关)
四、运行内存限制
注意事项:
1. 文件名(程序名和输入输出文件名)必须使用小写。

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

3. 全国统一评测时采用的机器配置为:CPU 1.9GHz,内存512M,上述时限以此配置为准。

各省在自测时可根据具体配置调整时限。

1. 笨小猴
(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。

【输入输出样例1】
【输入输出样例1解释】
单词error中出现最多的字母r出现了3次,出现次数最少的字母出现了1次,3-1=2,2是质数。

【输入输出样例2】
【输入输出样例2解释】
单词olympic中出现最多的字母i出现了2次,出现次数最少的字母出现了1次,2-1=1,1不是质数。

2. 火柴棒等式
(matches.pas/c/cpp)
【问题描述】
给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。

用火柴棍拼数字0-9的拼法如图所示:
注意:
1. 加号与等号各自需要两根火柴棍
2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0)
3. n根火柴棍必须全部用上
【输入】
输入文件matches.in共一行,又一个整数n(n<=24)。

【输出】
输出文件matches.out共一行,表示能拼成的不同等式的数目。

【输入输出样例1】
2个等式为0+1=1和1+0=1。

【输入输出样例2】
9个等式为:
0+4=4
0+11=11
1+10=11
2+2=4
2+7=9
4+0=4
7+2=9
10+1=11
11+0=11
3. 传纸条
(wassage.pas/c/cpp)
【问题描述】
小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。

一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。

幸运的是,他们可以通过传纸条来进行交流。

纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n)。

从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者向左传递。

在活动进行中,小渊希望给小轩传递一张纸条,同时希望小轩给他回复。

班里每个同学都可以帮他们传递,但只会帮他们一次,也就是说如果此人在小渊递给小轩纸条的时候帮忙,那么在小轩递给小渊的时候就不会再帮忙。

反之亦然。

还有一件事情需要注意,全班每个同学愿意帮忙的好感度有高有低(注意:小渊和小轩的好心程度没有定义,输入时用0表示),可以用一个0-100的自然数来表示,数越大表示越好心。

小渊和小轩希望尽可能找好心程度高的同学来帮忙传纸条,即找到来回两条传递路径,使得这两条路径上同学的好心程度只和最大。

现在,请你帮助小渊和小轩找到这样的两条路径。

【输入】
输入文件message.in的第一行有2个用空格隔开的整数m和n,表示班里有m行n列(1<=m,n<=50)。

接下来的m行是一个m*n的矩阵,矩阵中第i行j列的整数表示坐在第i行j列的学生的好心程度。

每行的n个整数之间用空格隔开。

【输出】
输出文件message.out共一行,包含一个整数,表示来回两条路上参与传递纸条的学生的好心程度之和的最大值。

【输入输出样例】
【限制】
30%的数据满足:1<=m,n<=10
100%的数据满足:1<=m,n<=50
4. 双栈排序
(twostack.pas/c/cpp)
【问题描述】
Tom最近在研究一个有趣的排序问题。

如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序。

操作a
如果输入序列不为空,将第一个元素压入栈S1
操作b
如果栈S1不为空,将S1栈顶元素弹出至输出
序列
操作c
如果输入序列不为空,将第一个元素压入栈S2
操作d
如果栈S2不为空,将S2栈顶元素弹出至输出
序列
如果一个1~n的排列P可以通过一系列操作使
得输出序列为1,2,…,(n-1),n,Tom就称P是一个“可双栈排序排列”。

例如(1,3,2,4)就是一个“可双栈排序序列”,而(2,3,4,1)不是。

下图描述了一个将(1,3,2,4)排序的操作序列:<a,c,c,b,a,d,d,b>
当然,这样的操作序列有可能有几个,对于上例(1,3,2,4),<a,c,c,b,a,d,d,b>是另外一个可行的操作序列。

Tom希望知道其中字典序最小的操作序列是什么。

【输入】
输入文件twostack.in的第一行是一个整数n。

第二行有n个用空格隔开的正整数,构成一个1~n的排列。

【输出】
输出文件twostack.out共一行,如果输入的排列不是“可双栈排序排列”,输出数字0;否则输出字典序最小的操作序列,每两个操作之间用空格隔开,行尾没有空格。

【输入输出样例1】
【输入输出样例2】
【输入输出样例3】
【限制】
30%的数据满足:n<=10
50%的数据满足:n<=50
100%的数据满足:n<=1000。

相关文档
最新文档