2012十八届noip提高组题目及答案

2012十八届noip提高组题目及答案
2012十八届noip提高组题目及答案

第十八届全国青少年信息学奥林匹克联赛初赛

(提高组Pascal语言试题)

一、单项选择题(共10题,每题1.5分,共计15分;每题有且仅有一个正确选项)

1.目前计算机芯片(集成电路)制造的主要原料是(),它是一种可以在沙子中提炼出的物质。

A.硅B.铜C.锗D.铝

2.()是主要用于显示网页服务器或者文件系统的HTML文件的内容,并让用户与这些文件交互的一种软件。

A.资源管理器B.浏览器C.电子邮件D.编译器

3.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。

A.显示器B.CPU C.内存D.鼠标

4.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。

A.中国公司的经理与斯洛伐克公司的经理交互商业文件

B.军队发布命令

C.国际

会议中,每个

人都与他国

地位对等的

人直接进行

会谈

D.体育比

赛中,每一级

比赛的优胜

者晋级上一

级比赛

5.如里不在快速排序中引入随机化,有可能导致的后果是()。

A.数组访问越界B.陷入死循环

C.排序结果错误D.排序时间退化为平方级

6.1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。

A.电子管B.晶体管C.集成电路D.超大规模集成电路

7.在程序运行过程中,如果递归调用的层数过多,会因为()引发错误。

A.系统分配的栈空间溢出B.系统分配的堆空间溢出

C .系统分配的队列空间溢出

D .系统分配的链表空间溢出

8.地址总线的位数决定了CPU 可直接寻址的内存空间大小,例如地址总线为16位,其最大的可寻址空间为64KB 。如果地址总线是32位,则理论上最大可寻址的内存空间为( )。

A .128KB

B .1MB

C .1GB

D .4GB

9.以下不属于

3G (第三代移动通信技术)标准的是( )。

A .GSM

B .TD-SCDMA

C .CDMA2000

D .WCDMA

10.仿生学的问世开辟了独特的科学技术发展道路。人们研究生物体的结构、功能和工作原理,并将这些原理移植于新兴

的工程技术中。以下关于仿生学的叙述,错误的是( )

A .由研究蝙蝠,发明雷达

B .由研究蜘蛛网,发明因特网

C .由研究海豚,发明声纳

D .由研究电鱼,发明伏特电池

二、不定项选择题(共10题,每题1.5分,共计15分;每题有一个或多个正确选项,多选或少选均不得分) 1.如果对于所有规模为n 的输入,一个算法均恰好进行( )次运算,我们可以说该算法的时间复杂度为(2)n

O 。

A .1

2

n +

B .3n

C .*2n

n

D .22

n

2. 从顶点0A 出发,对有向图( )进行广度优先搜索(BFS )时,一种可能的遍历顺序是01234,,,,A A A A A 。

3.如果一个栈初始时为空,且当前栈中的元素从栈顶到栈底依次为a ,b ,c (如右图所示),另有元素d 已经出栈,则可能的入栈顺序是( )。 A .a, b, c, d

B .b, a, c, d

C .a, c, b, d

D .d, a, b, c

4.在计算机显示器所使用的RGB 颜色模型中,( )属于三原色之一。

A .黄色

B .蓝色

C .紫色

D .绿色 5.一棵二叉树一共有19个节点,其叶子节点可能有( )个。 A .1 B .9 C .10 D .11

6.已知带权有向图G 上的所有权值均为正整数,记顶点u 到顶点v 的最短路径的权值为(,)d u v 。若12345,,,,v v v v v 是图G 上的顶点,且它们之间两两都存路径可达,则以下说法正确的有( )。

A .1v 到2v 的最短路径可能包含一个环

B .1221(,)(,)d v v d v v =

C .

131223(,)(,)(,)d v v d v v d v v ≤+

D .如果1

2345v v v v v →→→→是1v 到5v 的一条最短路径,那么234v v v →→是2v 到4v 的一条最短路径

7.逻辑异或(⊕)是一种二元运算,其真值表如下所示。

a b a b ⊕

False False False False True True True False True True

True

Flase

以下关于逻辑异或的性质,正确的有( )。

A .交换律:a b b a ⊕=⊕

B .结合律:()()a b c

a b c ⊕⊕=⊕⊕

C .关于逻辑与的分配律:()()()a b c a b a c ⊕∧=⊕∧⊕

D .关于逻辑或的分配律:()()()a b c a b a c ⊕∨=⊕∨⊕

8.十进制下的无限循环小数(不包括循环节内的数字均为0成均为9的平凡情况),在二进制下有可能是( )。

A .无限循环小数(不包括循环节内的数字均为0或均为9的平凡情)

B .无限不循环小数

C .有限小数

D .整数 9.( )是目前互联网上常用的E-mail 服务协议。

A .HTTP

B .FTP

C .POP3

D .SMTP 10.以下关于计算复杂度的说法中,正确的有( )。

A .如果一个问题不存在多项式时间的算法,那它一定是NP 类问题

B .如果一个问题不存在多项式时间的算法,那它一定不是P 类问题

C .如果一个问题不存在多项式空间的算法,那它一定是NP 类问题

D .如果一个问题不存在多项式空间的算法,那它一定不是P 类问题 三、问题求解(共2题,每题5分,共计10分)

1. 本题中,我们约定布尔表达式只能包含p ,q ,r 三个布尔变量,以及“与”(∧)、“或”(∨)、“非”(¬)三种布尔运算。如果无论p ,q ,r 如何取值,两个布尔表达式的值总是相同,则称它们等价。例如(p ∨q)∨r 和p ∨(q ∨r)等价,p ∨¬p 和q ∨¬q 也等价;而p ∨q 和p ∧q 不等价。那么两两不等价的布尔表达式最多有 个。

2. 对于一棵二叉树,独立集是指两两互不相邻的节点构成的集合。例如,图1有5个不同的独立集(1个双点集合,3个单点集合、1个空集),图2有14个不同的独立集。那么图3有 个不同的独立集。

三、阅读程序写结果。(共4题,每题8分,共计32分) 1. var n,i,temp,sum:integer; a :array[1..100] of integer; begin readln(n); for i:=1 to n do read(a[i]); for i:=1 to n-1 do if a[i]>a[i+1] then begin temp := a[i]; a[i] := a[i+1]; a[i+1] := temp; end; for i:=n downto 2 do if a[i]

40 70 50 70 20 40 10 30 输出:______________

2.var n,i,ans:integer;

function gcd(a,b :integer) : integer; begin

if a mod b=0

then gcd :=0;

else gcd := gcd(b,a mod b);

end;

begin

readln(n);

ans := 0;

for i:=1 to n do

if gcd(n,i)=i

then ans := ans + 1;

writeln(ans);

end.

输入:120

输出:_____________

3. var

data : array[1..20] of integer;

n,i,h,ans : integer;

procedure merge;

begin

data[h-1] := data[h-1] + data[h];

dec(h);

inc(ans);

end;

begin

readln(n);

h := 1;

data[h] := 1;

ans := 0;

for i:=2 to n do

begin

inc(h);

data[h] := 1;

while (h>1) and (data[h]=data[h-1]) do

merge;

end;

writeln(ans);

end.

(1)

输入:8

输出:______________ (4分)

(2)

输入:2012

输出:______________ (4分)

4. var

left, right, father :array[1..20] of integer;

sl, s2, s3 :string;

n,ana :integer;

procedure check(x :integer);

begin

if left[x]>0 then check(left[x));

s3 := s3 + sl[x];

if right[x]>0 then check(right[x]);

end;

procedure calc(x,dep :integer);

begin

ans:= ans + dep*(ord(sl[x])-ord('A')+1);

if left[x] > 0 then calc(left[x],dep+l);

if right[x]> 0 then calc(right[x),dep+l);

end;

procedure dfs(x,th :integer);

begin

if th = n+1 then

begin

s3 :='';

check(1);

if s2=s3 then

begin ans := 0; calc(1,1); writeln(ans); end; exit; end; if (left[x]=0) and (right[x]=0) then begin

left[x) := th; father[th] := x; dfs(th, th+1); father[th] := 0; left[x] := 0; end; if right[x] = 0 then begin

right[x] := th; father[th] := X; dfs(th, th+1); father[th] := 0; right[x] := 0; end; if (father[x] > 0) then dfs(father[x],th); end;

begin readln(s1); readln(s2); n := length(s1); fillchar(left,sizeof(left),0); fillchar(right,sizeof(right),0); fillcahr(father,sizeof(father),0); dfs(1,2); end. 输入: ABCDEF BCAEDF

输出:____________

五、完善程序(第1题第2空3分,其余每空2.5分,共计28分) 1.(排列数)输入两个正整数,(120,1)n m n m n ≤≤≤≤ ,在1n 中任取m 个数,按字典序从小到大输出所有这样的排列。例如

输入:3 2 输出:1 2

1 3

2 1 2

3 3 1

3 2

const SIZE=20; var used :array [1..SIZE] of boolean; data :array [1..SIZE] of integer; n,m,i,j,k :integer; flag :boolean; begin readln(n,m); fillchar(used,sizeof(used),false); for i:=1 to m do begin

data[i] := i;

used[i] := true;

end;

flag := true;

while flag do

begin

for i:=1 to m-1 do write(data[i],' ');

writeln(data[m]);

flag := ① ;

for i := m downto 1 do

begin

② ;

for j := data[i]+1 to n do if used[j] = false then

begin

used[j] := true;

data[i] := ③ ;

flag := true;

break;

end;

if flag then

begin

for k:= i+l to m do

for j:= 1 to ④ do if used[j]=false then

begin

data[k] := j;

used[j] := true;

break;

end;

⑤ ;

end;

end;

end;

end.

2.(新壳栈)小Z设计了一种新的数据结构“新壳栈”。首先,它和传统的栈一样支持压入、弹出操作。此外,其栈顶的前c个元素是它的壳,支持翻转操作。其中,c>2是一个固定的正整数,表示壳的厚度。小Z还希望,每次操作,无论是压入、弹出还是翻转,都仅用与c无关的常数时间完成。聪明的你能帮助她编程实现“新壳栈”吗?

程序期望的实现效果如以下两表所示。其中,输入的第一行是正整数c,之后每行输入都是一条指令。另外,如遇弹出操作时栈为空,或翻转操作时栈中元素不足c个,应当输出相应的错误信息。

表1:指令的涵义

表2:输入输出样例

const

NSIZE = 100000;

CSIZE = 1000;

var

n,c,r,tail,head :longint;

s : array[1..NSIZE] of longint;

//数组s模拟一个栈,n为栈的元素个数

q :array[1..CSIZE] of longint;

//数组q模拟一个循环队列,tail为队尾的下标,head为队头的下标

direction,empty :boolean;

function previous(k :longint) :longint;

begin

if direction then

previous := ((k+c-2) mod c) + 1;

else

previous := (k mod c) + 1;

end;

function next(k :longint) :longint;

begin

if direction then

else

next := ((k+c-2) mod c)+1;

end;

procedure push;

var

element :longint;

begin

read(element);

if next(head) = tail then

begin

inc(n);

② ;

tail := next(tail);

end;

if empty then

empty := false

else

head := next(head);

③ := element;

end;

procedure pop;

begin

if empty then

begin

writeln('Error: the stack is empty!');

exit;

end:

writeln( ④ );

if tail = head then

empty := true

else

begin

head := previous(head);

if n > 0 then

begin

tail := previous(tail);

⑤ := s[n];

dec(n);

end;

end;

end;

procedure reverse;

var

temp :longint;

begin

if ⑥ = tail then

begin

direction := not direction;

temp := head;

head := tail;

tail := temp;

end else

writeln('Error:less than',c,' elements in the stack!'); end;

begin

readln(c);

n := 0;

tail := 1;

head := 1;

empty := true;

direction := true;

repeat

read(r);

case r of

1 : push;

2 : pop;

3 : reverse;

end;

until r = 0;

end.

NOIP2017全国青少年信息学奥林匹克联赛提高组初赛试题卷答案解析

NOIP 2017全国青少年信息学奥林匹克联赛提高组初赛试题答案 一、单项选择题(共 15 题,每题 1.5 分,共计 22.5 分;每题有且仅有一个正确选项) 1. 从( )年开始,NOIP 竞赛将不再支持 Pascal 语言。 A. 2020 B. 2021 C. 2022 D. 2023 2.在 8 位二进制补码中,10101011 表示的数是十进制下的( )。 A. 43 B. -85 C. -43 D.-84 3.分辨率为 1600x900、16 位色的位图,存储图像信息所需的空间为( )。 A. 2812.5KB B. 4218.75KB C. 4320KB D. 2880KB 4. 2017年10月1日是星期日,1949年10月1日是( )。 A. 星期三 B. 星期日 C. 星期六 D. 星期二 5. 设 G 是有 n 个结点、m 条边(n ≤m)的连通图,必须删去 G 的( )条边,才能使得 G 变成一棵树。 A.m–n+1 B. m-n C. m+n+1 D.n–m+1 6. 若某算法的计算时间表示为递推关系式: T(N)=2T(N/2)+NlogN T(1)=1 则该算法的时间复杂度为( )。 A.O(N) B.O(NlogN) C.O(N log2N) D.O(N2) 7. 表达式a * (b + c) * d的后缀形式是()。 A. abcd*+* B. abc+*d* C. a*bc+*d D. b+c*a*d 8. 由四个不同的点构成的简单无向连通图的个数是( )。

A. 32 B. 35 C. 38 D. 41 9. 将7个名额分给4个不同的班级,允许有的班级没有名额,有( )种不同的分配方案。 A. 60 B. 84 C. 96 D.120 10. 若f[0]=0, f[1]=1, f[n+1]=(f[n]+f[n-1])/2,则随着i的增大,f[i]将接近与( )。 A. 1/2 B. 2/3 D. 1 11. 设A和B是两个长为n的有序数组,现在需要将A和B合并成一个排好序的数组,请问任何以元素比较作为基本运算的归并算法最坏情况下至少要做( )次比较。 A. n2 B. nlogn C. 2n D.2n-1 12. 在n(n>=3)枚硬币中有一枚质量不合格的硬币(质量过轻或质量过重),如果只有一架天平可以用来称重且称重的硬币数没有限制,下面是找出这枚不合格的硬币的算法。请把 a-c三行代码补全到算法中。 a. A XUY b. A Z c. n |A| 算法Coin(A,n) 1. k n/3 2. 将A中硬币分成X,Y,Z三个集合,使得|X|=|Y|=k, |Z|=n-2k 3. if W(X)≠W(Y) //W(X), W(Y)分别为X或Y的重量 4. then_______ 5. else_______ 6. __________ 7. if n>2 then goto 1 8. if n=2 then 任取A中1枚硬币与拿走硬币比较,若不等,则它不合格;若相等,则A 中剩下的硬币不合格 9. if n=1 then A中硬币不合格 正确的填空顺序是( )。 A. b,c,a B. c,b,a C. c,a,b D.a,b,c 13. 在正实数构成的数字三角形排列形式如图所示,第一行的数为a11;第二行的数从左到右依次为a21,a22;…第n行的数为an1,an2,…,ann。从a11开始,每一行的数aij只有两条边可以分别通向下一行的两个数a(i+1)j和a(i+1)(j+1)。用动态规划算法找出一条从a11向下通到an1,an2,…,ann中某个数的路径,使得该路径上的数之和达到最大。

noip2017提高组复赛解题报告

noip2017提高组复赛解题报告 定期推送帐号信息学新闻,竞赛自主招生,信息学专业知识,信息学疑难解答,融科教育信息学竞赛培训等诸多优质内容的微信平台,欢迎分享文章给你的朋友或者朋友圈!以下解题思路及代码未经官方评测,仅供参考,复赛成绩以官方(CCF)评测结果为准。 Day1 1.小凯的疑惑(math.cpp/c/pas)【问题描述】小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。【输入格式】输入文件名为math.in。输入数据仅一行,包含两个正整数a 和b,它们之间用一个空格隔开,表示小凯手中金币的面值。【输出格式】输出文件名为math.out。输出文件仅一行,一个正整数N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。【输入输出样例1】math.in3 7 math.out11【数据规模与约定】对于30%的数据: 1 ≤a,b ≤50。对于60%的数据: 1 ≤a,b ≤10,000。对于100%的数据:1 ≤a,b ≤1,000,000,000。数学太差只找规律吧。

设:其中一个数为2则:2、3=>1;2、5=>3;2、7=>5;2、11=>9得:2、n=>n-2设:其中一个数为3则:3、5=>7;3、7=>11;3、11=>19;3、13=>23得:3、n=>2n-3设:其中一个数为5则:5、7=>23;5、11=>39;5、13=>47;5、17=>63得:5、n=>4n-5所以:m、n=>(m-1)n-m #includeusing namespace std;int main(){ long long a,m,n; scanf('%lld %lld',&m,&n); a=(m-1)*n-m; printf('%lld',a); return 0;} 2.时间复杂度(complexity.cpp/c/pas)【问题描述】小明正在学习一种新的编程语言A++,刚学会循环语句的他激动地写了好多程序并给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序,于是你的机会来啦!下面请你编写程序来判断小明对他的每个程序给出的时间复杂度是否正确。A++语言的循环结构如下:其中“F i x y”表示新建变量(i 变量i 不可与未被销毁的变量重名)并初始化为x,然后判断i 和y 的大小关系,若i 小于等于y 则进入循环,否则不进入。每次循环结束后i都会被修改成i +1,一旦i 大于y 终止循环。x和y 可以是正整数(x 和y 的大小关系不定)或变量n。n 是一个表示数据规模的变量,在时间复杂度计算中需保留该变量而不能将其视为常数,该数远大于100。“E”表示循环体结束。循环体结束时,这个循环体新建的变量也被销毁。注:本题中为了书写方便,在描述复杂度时,使用大

noip2017提高组试题

CCF 全国信息学奥林匹克联赛(NOIP2017)复赛 提高组 day1 (请选手务必仔细阅读本页内容) 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。 3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor,2.8GHz, 内存4G,上述时限以此配置为准。 4、只提供Linux 格式附加样例文件。 5、提交的程序代码文件的放置位置请参照各省的具体要求。 6、特别提醒:评测在当前最新公布的NOI Linux 下进行,各语言的编译器版本以其为准。

【问题描述】1.小凯的疑惑 (math.cpp/c/pas) 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。 【输入格式】 输入文件名为math.in。 输入数据仅一行,包含两个正整数a 和b,它们之间用一个空格隔开,表示小凯手中金币的面值。 【输出格式】 输出文件名为math.out。 输出文件仅一行,一个正整数N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。 见选手目录下的math/math1.in 和math/math1.ans。 【输入输出样例1 说明】 小凯手中有面值为3 和7 的金币无数个,在不找零的前提下无法准确支付价值为1、2、4、5、8、11 的物品,其中最贵的物品价值为11,比11 贵的物品都能买到,比如: 12 = 3 * 4 + 7 * 0 13 = 3 * 2 + 7 * 1 14 = 3 * 0 + 7 * 2 15 = 3 * 5 + 7 * 0 …… 【输入输出样例2】 见选手目录下的math/math2.in 和math/math2.ans。 【数据规模与约定】 对于30%的数据: 1 ≤ a,b ≤ 50。 对于60%的数据: 1 ≤ a,b ≤ 10,000。 对于100%的数据:1 ≤ a,b ≤ 1,000,000,000。

NOIP2017提高组初赛试题及答案

NOIP2017提高组初赛试题及答案 一、单项选择题(共15 题,每题1.5 分,共计22.5 分;每题有且仅有一个正确选项) 1. 从( )年开始,NOIP 竞赛将不再支持Pascal 语言。C A. 2020 B. 2021 C. 2022 D. 2023 2.在8 位二进制补码中,10101011 表示的数是十进制下的( )。B A. 43 B. -85 C. -43 D.-84 3.分辨率为1600x900、16 位色的位图,存储图像信息所需的空间为( )。A A. 2812.5KB B. 4218.75KB C. 4320KB D. 2880KB 4. 2017年10月1日是星期日,1949年10月1日是( )。C A. 星期三 B. 星期日 C. 星期六 D. 星期二 5. 设G 是有n 个结点、m 条边(n ≤m)的连通图,必须删去G 的( )条边,才能使得G 变成一棵树。A A.m–n+1 B. m-n C. m+n+1 D.n–m+1 6. 若某算法的计算时间表示为递推关系式:T(N)=2T(N/2)+NlogN T(1)=1 则该算法的时间复杂度为( )。C A.O(N) B.O(NlogN) C.O(N log2N) D.O(N2) 7. 表达式a * (b + c) * d的后缀形式是()。B A. abcd*+* B. abc+*d* C. a*bc+*d D. b+c*a*d 8. 由四个不同的点构成的简单无向连通图的个数是( )。C A. 32 B. 35 C. 38D. 41 9. 将7个名额分给4个不同的班级,允许有的班级没有名额,有( )种不同的分配方案。D A. 60 B. 84 C. 96 D.120 10. 若f[0]=0, f[1]=1, f[n+1]=(f[n]+f[n-1])/2,则随着i的增大,f[i]将接近与( )。B A. 1/2 B. 2/3 D. 1 11. 设A和B是两个长为n的有序数组,现在需要将A和B合并成一个排好序的数组,请问任何以元素比较作为基本运算的归并算法最坏情况下至少要做( )次比较。D A. n2 B. Nlogn C. 2n D.2n-1 12. 在n(n>=3)枚硬币中有一枚质量不合格的硬币(质量过轻或质量过重),如果只有一架天平可以用来称重且称重的硬币数没有限制,下面是找出这枚不合格的硬币的算法。请把a-c三行代码补全到算法中。 2. 将A中硬币分成X,Y,Z三个集合,使得|X|=|Y|=k, |Z|=n-2k 3. if W(X)≠W(Y) //W(X), W(Y)分别为X或Y的重量 4. then_______ 5. else_______ 6. __________ 7. if n>2 then goto 1 8. if n=2 then 任取A中1枚硬币与拿走硬币比较,若不等,则它不合格;若相等,则A中剩下的硬币不合格 9. if n=1 then A中硬币不合格 正确的填空顺序是( )。D A. b,c,a B. c,b,a C. c,a,b D.a,b,c 13. 在正实数构成的数字三角形排列形式如图所示,第一行的数为a11;第二行的数从左到右依次为a21,a22;…第n行的数为 an1,an2,…,ann。从a11开始,每一行的数aij只有两条边可以分别通向下一行的两个数a(i+1)j和a(i+1)(j+1)。用动态规划算法找出一条从a11向下通到an1,an2,…,ann中某个数的路径,使得该路径上的数之和达到最大。 令C[i,j]是从a11到aij的路径上的数的最大和,并且C[i,0]=C[0,j]=0,则C[i,j]=( )。A A. max{C[i-1,j-1],C[i-1,j]}+aij B. C[i-1,j-1]+c[i-1,j] C. max{C[i-1,j-1],C[i-1,j]}+1 D. max{C[i,j-1],C[i-1,j]}+aij 14. 小明要去南美洲旅游,一共乘坐三趟航班才能到达目的地,其中第1个航班准点的概率是0.9,第2个航班准点的概率为0.8,第3个航班准点的概率为0.9。如果存在第i个(i=1,2)航班晚点,第i+1个航班准点,则小明将赶不上第i+1个航班,旅行失败;除了这种情况,其他情况下旅行都能成功。请问小明此次旅行成功的概率是( )。D

noip2017提高组试题(day1+day2)-Word版

全国信息学奥林匹克联赛(2017)复赛 提高组 1 (请选手务必仔细阅读本页内容) 一.题目概况 注意事项: 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、中函数 ()的返回值类型必须是,程序正常结束时的返回值必须是 0。 3、全国统一评测时采用的机器配置为: () x2 240 ,2.8, 内存 4G,上述时限以此配置为准。 4、只提供格式附加样例文件。 5、提交的程序代码文件的放置位置请参照各省的具体要求。

6、特别提醒:评测在当前最新公布的下进行,各语言的编译器版本以其为准。

【问题描述】1.小凯的疑惑 () 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。 【输入格式】 输入文件名为。 输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。 【输出格式】 输出文件名为。 输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。 【输入输出样例 1】 见选手目录下的 1 和 1。 【输入输出样例 1 说明】 小凯手中有面值为3 和7 的金币无数个,在不找零的前提下无法准确支付价值为1、 2、4、5、8、11 的物品,其中最贵的物品价值为 11,比 11 贵的物品都能买到,比如: 12 = 3 * 4 + 7 * 0 13 = 3 * 2 + 7 * 1 14 = 3 * 0 + 7 * 2

NOIP2017_提高组复赛试题day2

CCF全国信息学奥林匹克联赛(NOIP2017)复赛 提高组 day2 (请选手务必仔细阅读本页内容) 注意事项: 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。 3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor,2.8GHz, 内存4G,上述时限以此配置为准。 4、只提供Linux格式附加样例文件。 5、提交的程序代码文件的放置位置请参照各省的具体要求。 6、特别提醒:评测在当前最新公布的NOI Linux下进行,各语言的编译器版本以其为准。

1.奶酪 (cheese.cpp/c/pas) 【问题描述】 现有一块大奶酪,它的高度为h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系,在坐标系中,奶酪的下表面为z=0,奶酪的上表面为z=h。 现在,奶酪的下表面有一只小老鼠Jerry,它知道奶酪中所有空洞的球心所在的坐标。如果两个空洞相切或是相交,则Jerry可以从其中一个空洞跑到另一个空洞,特别地,如果一个空洞与下表面相切或是相交,Jerry则可以从奶酪下表面跑进空洞;如果一个空洞与上表面相切或是相交,Jerry则可以从空洞跑到奶酪上表面。 位于奶酪下表面的Jerry想知道,在不破坏奶酪的情况下,能否利用已有的空洞跑到奶酪的上表面去? 空间内两点P1(x1,y1,z1)、P2(x2,y2,z2)的距离公式如下: dist(P1,P2)=√(x1?x2)+(y1?y2)+(z1?z2) 【输入格式】 输入文件名为cheese.in。 每个输入文件包含多组数据。 输入文件的第一行,包含一个正整数T,代表该输入文件中所含的数据组数。 接下来是T组数据,每组数据的格式如下: 第一行包含三个正整数n,h和r,两个数之间以一个空格分开,分别代表奶酪中空洞的数量,奶酪的高度和空洞的半径。 接下来的n行,每行包含三个整数x、y、z,两个数之间以一个空格分开,表示空洞球心坐标为(x,y,z)。 【输出格式】 输出文件名为cheese.out。 输出文件包含T行,分别对应T组数据的答案,如果在第i组数据中,Jerry能从下表面跑到上表面,则输出“Yes”,如果不能,则输出“No”(均不包含引号)。

NOIP2017普及组初赛试题及答案

NOIP2017普及组初赛试题及答案 文字标黑部分为试题答案。 一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项) 1.在8位二进制补码中,10101011表示的数是十进制下的( )。 A. 43 B. -85 C. -43 D. -84 2.计算机存储数据的基本单位是( )。 A. bit B. Byte C. GB D. KB 3.下列协议中与电子邮件无关的是( )。 A. POP3 B. SMTP C. WTO D. IMAP 4.分辨率为800x600、16位色的位图,存储图像信息所需的空间为( )。 A.937.5KB B. 4218.75KB C.4320KB D. 2880KB 5.计算机应用的最早领域是( )。 A.数值计算 B.人工智能 C.机器人 D.过程控制 6.下列不属于面向对象程序设计语言的是( )。 页脚内容1

A. C B. C++ C. Java D. C# 7.NOI的中文意思是( )。 A.中国信息学联赛 B.全国青少年信息学奥林匹克竞赛 C.中国青少年信息学奥林匹克竞赛 D.中国计算机协会 8. 2017年10月1日是星期日,1999年10月1日是( )。 A.星期三 B.星期日 C.星期五 D.星期二 9.甲、乙、丙三位同学选修课程,从4门课程中,甲选修2门,乙、丙各选修3门,则不同的选修方案共有( )种。 A. 36 B. 48 C. 96 D. 192 10.设G是有n个结点、m条边(n ≤m)的连通图,必须删去G的( )条边,才能使得G变成一棵树。 A.m–n+1 B. m-n C. m+n+1 D.n–m+1 11.对于给定的序列{ak},我们把(i, j)称为逆序对当且仅当i < j且ai> aj。那么 序列1, 7, 2, 3, 5, 4的逆序对数为()个。 页脚内容2

NOIP2018提高组复赛试题day2

CCF全国信息学奥林匹克联赛(NOIP2018)复赛 提高组 day2 (请选手务必仔细阅读本页内容) 注意事项: 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。 3、全国统一评测时采用的机器配置为:Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz,内存 32GB。上述时限以此配置为准。 4、只提供Linux格式附加样例文件。 5、特别提醒:评测在当前最新公布的NOI Linux下进行,各语言的编译器版本以其为准。

1.旅行 (travel.cpp/c/pas) 【问题描述】 小Y是一个爱好旅行的OIer。她来到X国,打算将各个城市都玩一遍。 小Y了解到,X国的 n 个城市之间有 m 条双向道路。每条双向道路连接两个城市。不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路。并且,从任意一个城市出发,通过这些道路都可以到达任意一个其他城市。小Y只能通过这些道路从一个城市前往另一个城市。 小Y的旅行方案是这样的:任意选定一个城市作为起点,然后从起点开始,每次可以选择一条与当前城市相连的道路,走向一个没有去过的城市,或者沿着第一次访问该城市时经过的道路后退到上一个城市。当小Y回到起点时,她可以选择结束这次旅行或继续旅行。需要注意的是,小Y要求在旅行方案中,每个城市都被访问到。 为了让自己的旅行更有意义,小Y决定在每到达一个新的城市(包括起点)时,将它的编号记录下来。她知道这样会形成一个长度为 n 的序列。她希望这个序列的字典序最小,你能帮帮她吗? 对于两个长度均为 n 的序列A和B,当且仅当存在一个正整数x,满足以下条件时,我们说序列A的字典序小于B。 ?对于任意正整数1≤i

NOIP2015提高组C++试题

第二十一届全国青少年信息学奥林匹克联赛初赛 提高组C++语言试题 竞赛时间:2015 年10 月11 日14:30~16:30 选手注意: ●试题纸共有9页,答题纸共有2页,满分100 分。请在答题纸上作答,写在试题纸上的 一律无效。 ●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共15 题,每题1.5 分,共计22.5 分;每题有且仅有一个正确选项) 1. 在计算机内部用来传送、存贮、加工处理的数据或指令都是以()形式进行的。 A. 二进制码 B. 八进制码 C. 十进制码 D. 智能拼音码 2. 下列说法正确的是()。 A. CPU 的主要任务是执行数据运算和程序控制 B. 存储器具有记忆能力,其中信息任何时候都不会丢失 C. 两个显示器屏幕尺寸相同,则它们的分辨率必定相同 D. 个人用户只能使用W ifi 的方式连接到I nternet 3. 与二进制小数0.1 相等的十六进制数是()。 A. 0.8 B. 0.4 C. 0.2 D. 0.1 4. 下面有四个数据组,每个组各有三个数据,其中第一个数据为八进制数,第二个数据为 十进制数,第三个数据为十六进制数。这四个数据组中三个数据相同的是()。A. 120 82 50 B. 144 100 68 C. 300 200 C8 D. 1762 1010 3F2 5. 线性表若采用链表存储结构,要求内存中可用存储单元地址()。 A. 必须连续 B. 部分地址必须连续 C. 一定不连续 D. 连续不连续均可 6. 今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f 依次进行进栈,进栈,出栈, 进栈,进栈,出栈的操作,则此操作完成后,栈S的栈顶元素为()。 A. f B. c C. a D. b

提高组试题

NOIP提高组模拟试题2017.07 BY XYX

小X的质数(prime) 【题目背景】 小X是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感。小X认为,质数是一切自然数起源的地方。 【题目描述】 在小X的认知里,质数是除了本身和1以外,没有其他因数的数字。 但由于小X对质数的热爱超乎寻常,所以小X同样喜欢那些虽然不是质数,但却是由两个质数相乘得来的数。 于是,我们定义,一个数是小X喜欢的数,当且仅当其是一个质数,或是两个质数的乘积。 而现在,小X想要知道,在L到R之间,有多少数是他喜欢的数呢? 【输入格式】 从文件prime.in中读取数据。 第一行输入一个正整数Q,表示询问的组数。 接下来Q行,包含两个正整数L和R,保证L≤R。 【输出格式】 输出Q行,每行一个整数,表示小X喜欢的数的个数。 【样例1输入】 1 1 6 【样例1输出】 5 【样例1解释】 6以内的质数有2、3、5,而4 = 2 * 2,6 = 2 * 3,因此,2,3,4,5,6都是小X喜欢的数,而1不是。 【样例2】 见下发文件prime2.in,prime2.ans 【样例3】 见下发文件prime3.in,prime3.ans

小X的密室(room) 【题目背景】 小X正困在一个密室里,他希望尽快逃出密室。 【题目描述】 密室中有N个房间,初始时,小X在1号房间,而出口在N号房间。 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会单向地创造一条从房间X到房间Y的通道。另外,想要通过某个传送门,就必须具备一些种类的钥匙。幸运的是,钥匙在打开传送门的封印后,并不会消失。 然而,通过密室的传送门需要耗费大量的时间,因此,小X希望通过尽可能少的传送门到达出口,你能告诉小X这个数值吗? 另外,小X有可能不能逃出这个密室,如果是这样,请输出“No Solution”。【输入格式】 从文件room.in中读取数据。 第一行三个整数N、M、K,分别表示房间的数量、传送门的数量以及钥匙的种类数。 接下来N行,每行K个0或1,若第i个数为1,则表示该房间内有第i种钥匙,若第i个数为0,则表示该房间内没有第i种钥匙。 接下来M行,每行先读入两个整数X,Y,表示该传送门是建立在X号房间,通向Y号房间的,再读入K个0或1,若第i个数为1,则表示通过该传送门需要i种钥匙,若第i个数为0,则表示通过该传送门不需要第i种钥匙。 【输出格式】 输出一行一个“No Solution”,或一个整数,表示最少通过的传送门数。【样例1输入】 3 3 2 1 0 0 1 0 0 1 3 1 1 1 2 1 0 2 3 1 1 【样例1输出】 2 【样例2】 见下发文件room2.in, room2.ans 【样例3】 见下发文件room3.in, room3.ans 【样例4】 见下发文件room4.in, room4.ans

NOIP2017提高组C++试题

福建 福建第二十三届全国青少年信息学奥林匹克联赛初赛 提高组C++语言试题 竞赛时间:2017年10月14日14:30~16:30 选手注意: ● 试题纸共有10页,答题纸共有2页,满分100分。请在答题纸上作答,写在试题纸上的一律无效。 ● 不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共15题,每题1.5分,共计22.5分;每题有且仅有一个正确选项) 1. 从( )年开始,NOIP 竞赛将不再支持Pascal 语言。 A. 2020 B. 2021 C. 2022 D. 2023 2. 在8位二进制补码中,10101011表示的数是十进制下的( )。 A. 43 B. -85 C. -43 D. -84 3. 分辨率为1600x900、16位色的位图,存储图像信息所需的空间为( )。 A. 2812.5KB B. 4218.75KB C. 4320KB D. 2880KB 4. 2017年10月1日是星期日,1949年10月1日是( )。 A. 星期三 B. 星期日 C. 星期六 D. 星期二 5. 设G 是有n 个结点、m 条边(n ≤ m )的连通图,必须删去G 的( )条边,才能使得G 变成一棵树。 A. m – n + 1 B. m - n C. m + n + 1 D. n – m + 1 6. 若某算法的计算时间表示为递推关系式: T(N) = 2T(N / 2) + N log N T(1) = 1 则该算法的时间复杂度为( )。 A. O(N) B. O(N log N) C. O(N log 2 N) D. O(N 2) 7. 表达式a * (b + c) * d 的后缀形式是( )。 A. a b c d * + * B. a b c + * d * C. a * b c + * d D. b + c * a * d 8. 由四个不同的点构成的简单无向连通图的个数是( )。 A. 32 B. 35 C. 38 D. 41

NOIP2013提高组复赛试题

CCF 全国信息学奥林匹克联赛(NOIP2013) 复赛 提高组 day1 1.转圈游戏 (circle.cpp/c/pas) 【问题描述】 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从 0 到 n-1。最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。 游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第n ?m号位置上的小伙伴走到第 0 号位置,第n-m+1 号位置上的小伙伴走到第 1 号位置,……,第 n-1 号位置上的小伙伴顺时针走到第m-1 号位置。 现在,一共进行了10^k 轮,请问x 号小伙伴最后走到了第几号位置。 【输入】 输入文件名为circle.in。 输入共1 行,包含4 个整数n、m、k、x,每两个整数之间用一个空格隔开。 【输出】 输出文件名为c ircle.out。 输出共1行,包含1个整数,表示10k 轮后x号小伙伴所在的位置编号。 【数据说明】 对于30%的数据,0 < k < 7; 对于80%的数据,0 < k < 107; 对于100%的数据,1 < n< 1,000,000,0

2.火柴排队 (match.cpp/c/pas) 【问题描述】 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:,其中 ai 表示第一列火柴中第 i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。 每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。请问得到这个最小的距离,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 99,999,997 取模的结果。 【输入】 输入文件为m atch.in。 共三行,第一行包含一个整数n,表示每盒中火柴的数目。 第二行有n个整数,每两个整数之间用一个空格隔开,表示第一列火柴的高度。 第三行有n个整数,每两个整数之间用一个空格隔开,表示第二列火柴的高度。 【输出】 输出文件为m atch.out。 输出共一行,包含一个整数,表示最少交换次数对99,999,997 取模的结果。 【输入输出样例1 【输入输出样例说明】 最小距离是0,最少需要交换1次,比如:交换第1列的前2根火柴或者交换第2列的前2根火柴。 【输入输出样例说明】 最小距离是10,最少需要交换2 次,比如:交换第1 列的中间2 根火柴的位置,再交换第2 列中后2 根火柴的位置。 【数据范围】 对于10%的数据,1 ≤ n ≤ 10; 对于30%的数据,1 ≤ n ≤ 100; 对于60%的数据,1 ≤ n ≤ 1,000;

相关文档
最新文档