NOIP提高组C初赛试题Word下载.docx

上传人:b****4 文档编号:7740999 上传时间:2023-05-09 格式:DOCX 页数:17 大小:64.63KB
下载 相关 举报
NOIP提高组C初赛试题Word下载.docx_第1页
第1页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第2页
第2页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第3页
第3页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第4页
第4页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第5页
第5页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第6页
第6页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第7页
第7页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第8页
第8页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第9页
第9页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第10页
第10页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第11页
第11页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第12页
第12页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第13页
第13页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第14页
第14页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第15页
第15页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第16页
第16页 / 共17页
NOIP提高组C初赛试题Word下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

NOIP提高组C初赛试题Word下载.docx

《NOIP提高组C初赛试题Word下载.docx》由会员分享,可在线阅读,更多相关《NOIP提高组C初赛试题Word下载.docx(17页珍藏版)》请在冰点文库上搜索。

NOIP提高组C初赛试题Word下载.docx

10.有以下程序:

#include<

iostream>

usingnamespacestd;

intmain(){

intk=4,n二0;

while(n<

k){

n++;

if(n%3!

=0)

continue;

k--;

}

cout<

<

k<

"

"

<

n<

endl;

return0;

程序运行后的输出结果是()。

A.2,2B.2,3C.3,2D.3,3

11有7个一模一样的苹果,放到3个一样的盘子中,一共有()种放法

A.7B.8C.21D.37

12.Lucia和她的朋友以及朋友的朋友都在某社交网站上注册了账号。

下图是他们之间的关系图,两个人之间有边相连代表这两个人是朋友,没有边相连代表

不是朋友。

这个社交网站的规则是:

如果某人A向他(她)的朋友B分享了某张照片,那么B就可以对该照片进行评论;

如果B评论了该照片,那么他(她)的所有朋友都可以看见这个评论以及被评论的照片,但是不能对该照

片进行评论(除非A也向他(她)分享了该照片)。

现在Lucia已经上传了一张照片,但是她不想让Jacob看见这张照片,那么她可以向以下朋友()分享该照片。

A.Dana,Michael,EveB.Dana,Eve,Monica

C.Michael,Eve,JacoBD.Micheal,Peter,Monica

13.周末小明和爸爸妈妈三个人一起想动手做三道菜。

小明负责洗菜、爸爸负责切

菜、妈妈负责炒菜。

假设做每道菜的顺序都是:

先洗菜10分钟,然后切菜10

分钟,最后炒菜10分钟。

那么做一道菜需要30分钟。

注意:

两道不同的菜

的相同步骤不可以同时进行。

例如第一道菜和第二道的菜不能同时洗,

也不能同时切。

那么做完三道菜的最短时间需要()分钟。

A.90B.60C.50D40

14.假设某算法的计算时间表示为递推关系式

T(n)=2T(-)+.n

4

T

(1)=1

则算法的时间复杂度为()。

A.O(n)B.O(..n)C.O(nlogn)D.O(n2)

1.给定含有n个不同的数的数组L=<

x1,X2,...,xn>

如果L中存在Xi(1<

i<

n)使

得X[<

X2<

...<

Xj_1<

Xj>

Xj+1>

...>

Xn,则称L是单峰的,并称xi是L的

“峰顶”。

现在已知L是单峰的,请把a-c三行代码补全到算法中使得算法正确找到L的峰顶。

a.Search(k+1,n)

b.Search(1,k-1)

c.returnL[k]

Search(1,n)

1.kqn/2]

2.ifL[k]>

L[k-1]andL[k]>

L[k+1]

3.then

4.elseifL[k]>

L[k-1]andL[k]<

5.then

6.else

正确的填空顺序是()。

A.c,a,bB.c,b,aC.a,b,cDb,a,c

二、不定项选择题(共5题,每题1.5分,共计7.5分;

每题有一个或多个正确选项,多选或少选均不得分)

1.以下属于无线通信技术的有()。

A.蓝牙B.WiFiC.GPRD.以太网

2.可以将单个计算机接入到计算机网络中的网络接入通讯设备有()

A.网卡B.光驱C.鼠标D.显卡

3.下列算法中运用分治思想的有()。

A.快速排序B.归并排序C.冒泡排序D.计数排序

4.下图表示一个果园灌溉系统,有A、B、C、D四个阀门,每个阀门可以打开或关上,所有管道粗细相同,以下设置阀门的方法中,可以让果树浇上水的

有水

有()。

A.B打开,其他都关上B.AB都打开,CD都关上

C.A打开,其他都关上D.D打开,其他都关上

5.参加NOI比赛,以下能带入考场的有()

A.钢笔B.适量的衣服C.U盘D.铅笔

三、问题求解(共2题,每题5分,共计10分;

每题全部答对得5分,没有部分分)

1.一个1X8的方格图形(不可旋转)用黑、白两种颜色填涂每个方格。

如果每个方格只能填涂一种颜色,且不允许两个黑格相邻,共有

种填涂方案。

2.某中学在安排期末考试时发现,有7个学生要参加7门课程的考试,下表列出了哪些学生参加哪些考试(用V表示要参加相应的考试)。

最少要安排不同的考试时间段才能避免冲突?

考试

学生1

学生2

学生3

学生4

学生5

学生6

学生7

通用技术

•、/

物理

化学

生物

/

历史

地理

政治

四、阅读程序写结果(共4题,每题8分,共计32分)

1.#include<

inta[6]={1,2,3,4,5,6};

intpi=0;

intpj=5;

intt,i;

while(pi<

pj){

t=a[pi];

a[pi]=a[pj];

a[pj]=t;

pi++;

pj--;

for(i=0;

6;

i++)cout<

a[i]<

;

输出:

2.#include<

chara[100][100],b[100][100];

stringc[1o0];

stringtmp;

intn,i=0,j=0,k=0,total_len[100],length[100][3];

cin>

>

n;

getline(cin,tmp);

i++){

getline(cin,c[i]);

total_len[i]=c[i].size();

j=0;

while(c[i][j]!

='

:

'

){a[i][k]=c[i][j];

k=k+1;

j++;

length[i][1]=k-1;

a[i][k]=0;

k=0;

for(j=j+1;

j<

total_len[i];

j++){b[i][k]=c[i][j];

length[i][2]=k-1;

b[i][k]=0;

if(length[i][1]>

=length[i][2])cout<

NO,"

else{

for(j=0;

length[i][2];

j++){if(a[i][k]==b[i][j])k=k+1;

if(k>

length[i][1])break;

if(j==length[i][2])

else

YES,"

endl;

输入:

3AB:

ACDEbFBkBD

AR:

ACDBrT

SARS:

SevereAtypicalRespiratorySyndrome

注:

输入各行前后均无空格)

3.#include<

usingnamespacestd;

intlps(stringseq,inti,intj){

intlen1,len2;

if(i==j)return1;

if(i>

j)return0;

if(seq[i]==seq[j])

returnlps(seq,i+1,j-1)+2;

len1=lps(seq,i,j-1);

len2=lps(seq,i+1,j);

if(len1>

len2)

returnlen1;

returnlen2;

intmain(){stringseq="

acmerandacm"

intn=seq.size();

lps(seq,0,n-1)<

输出:

4.#include<

#include<

cstring>

intmap[100][100];

intsum[100],weight[100];

intvisit[100];

intn;

voiddfs(intnode){visit[node]=1;

sum[node]=1;

intv,maxw=0;

for(v=1;

v<

=n;

v++){if(!

map[node][v]||visit[v])continue;

dfs(v);

sum[node]+=sum[v];

if(sum[v]>

maxw)maxw=sum[v];

if(n-sum[node]>

maxw)maxw=n-sum[node];

weight[node]=maxw;

intmain(){

memset(map,0,sizeof(map));

memset(sum,0,sizeof(sum));

memset(weight,0,sizeof(weight));

memset(visit,0,sizeof(visit));

cin>

inti,x,y;

for(i=1;

x>

y;

map[x][y]=1;

map[y][x]=1;

dfs

(1);

intans=n,ansN=0;

i++)if(weight[i]<

ans){ans=weight[i];

ansN=i;

ansN<

ans<

11

12

13

24

25

26

37

78

711

69

910

五、完善程序(共2题,每题14分,共计28分)

1.(交朋友)根据社会学研究表明,人们都喜欢找和自己身高相近的人做朋友。

现在有n名身高两两不相同的同学依次走入教室,调查人员想预测每个人在走入教室的瞬间最想和已经进入教室的哪个人做朋友。

当有两名同学和这名同

学的身高差一样时,这名同学会更想和高的那个人做朋友。

比如一名身高为1.80米的同学进入教室时,有一名身高为1.79米的同学和一名身高为1.81米的同学在教室里,那么这名身高为1.80米的同学会更想和身高为1.81米的同学做朋友。

对于第一个走入教室的同学我们不做预测。

由于我们知道所有人的身高和走进教室的次序,所以我们可以采用离线的

做法来解决这样的问题,我们用排序加链表的方式帮助每一个人找到在他之

前进入教室的并且和他身高最相近的人。

(第一空2分,其余3分)

#defineMAXN200000

previous[MAXN],next[MAXN];

#defineinfinity2147483647

intanswer[MAXN],height[MAXN],intrank[MAXN];

voidsort(intl,intr){

intx=height[rank[(l+r)/2]],i=l,j=r,temp;

while(i<

=j)

{

while(height[rank[i]]<

x)i++;

while(height[rank[j]]>

x)j--;

if(⑴山

temp=rank[i];

rank[i]=rank[j];

rank[j]=temp;

i++;

j--;

if(i<

r)sort(i,r);

if(I<

j)sort(l,j);

intmain()

inti,higher,shorter;

i++){cin>

height[i];

rank[i]=i;

sort(1,n);

previous[rank[i]]=rank[i-1];

(2);

for(i=n;

i>

=2;

i--){

higher=shorter=infinity;

if(previous[i]!

=0)

shorter=height[i]-height[previous[i]];

if

(next[i]!

(3);

if(⑷)

answer[i]=previous[i];

answer[i]=next[i];

next[previous[i]]=next[i];

EU-5^^;

for(i=2;

i++)

answer[i];

return0;

2.(交通中断)有一个小国家,国家内有n座城市和m条双向的道路,每条道路连接

着两座不同的城市。

其中1号城市为国家的首都。

由于地震频繁可能导致某一个城市与外界交通全部中断。

这个国家的首脑想知道,如果只有第i(i>

1)个城市因地震而

导致交通中断时,首都到多少个城市的最短路径长度会发生改变。

如果因为无法通过第i个城市而导致从首都出发无法到达某个城

第10页,共13页市,也认为到达该城市的最短路径长度改变。

对于每一个城市i,假定只有第i个城市与外界交通中断,输出有多少个城市

会因此导致到首都的最短路径长度改变。

我们采用邻接表的方式存储图的信息,其中head[x]表示顶点x的第一条边的

编号,next[i]表示第i条边的下一条边的编号,point[i]表示第i条边的终点,weight[i]表示第i条边的长度。

(第一空2分,其余3分)#include<

#inelude<

cstring>

usingnamespacestd;

#defineMAXN6000

#defineMAXM100000#defineinfinity2147483647

inthead[MAXN],next[MAXM],point[MAXM],weight[MAXM];

intqueue[MAXN],dist[MAXN],visit[MAXN];

intn,m,x,y,z,total=0,answer;

voidlink(intx,inty,intz){total++;

next[total]=head[x];

head[x]=total;

point[total]=y;

weight[total]=z;

total++;

next[total]=head[y];

head[y]=total;

point[total]=x;

}intmain(){

inti,j,s,t;

n>

m;

=m;

y>

z;

link(x,y,z);

i++)dist[i]=infinity;

⑴J

queue[1]=1;

visit[1]=1;

s=1;

t=1;

//使用SPFA求出第一个点到其余各点的最短路长度while(s<

=t){

x=queue[s%MAXN];

j=head[x];

while(j!

=0){

if(⑵Hl

dist[point[j]]=dist[x]+weight[j];

if(visit[point[j]]==0){

t++;

queue[t%MAXN]=point[j];

visit[point[j]]=1;

j=next[j];

(3);

s++;

memset(visit,0,sizeof(visit));

while(s<

=t){//判断最短路长度是否不变

x=queue[s];

if(point[j]!

=i&

&

(4)

visit[point[j]]==0){

queue[t]=point[j];

answer=0;

for(j=1;

j++)

answer+=1-visit[j];

answer-1<

第12页,共13页

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2