2018年第二十四届全国青少年信息学奥林匹克联赛初赛提高组含问题详解重新整理排版_第1页
2018年第二十四届全国青少年信息学奥林匹克联赛初赛提高组含问题详解重新整理排版_第2页
2018年第二十四届全国青少年信息学奥林匹克联赛初赛提高组含问题详解重新整理排版_第3页
2018年第二十四届全国青少年信息学奥林匹克联赛初赛提高组含问题详解重新整理排版_第4页
2018年第二十四届全国青少年信息学奥林匹克联赛初赛提高组含问题详解重新整理排版_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二十四届全国青少年信息学奥林匹克联赛初赛提tWj组C+语言试题竞赛时间:2018年10月13日14:3016:30(WOR区新整理排版)选手注意:试题纸共有9页,答题纸共有2页,满分100分。请在答题纸上作答,写在试题纸上的一律无效。不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。一、单项选择题(共10题,每题2分,共计20分;每题有且仅有一个正确选项)1,下列四个不同进制的数中,与其它三项数值上不相等的是()。A. (269)16B. (617)10C. (1151)8D. (1001101011)22,下列属于解释执行的程序设计语言是()。A. CB. C+C. P

2、ascalD. Python3.中国计算机学会于()年创办全国青少年计算机程序设计竞赛。A.1983B.1984C.1985D.19864,设根节点深度为0,一棵深度为h的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k个子结点的树,共有()个结点。A. (kh+1-1)/(k-1)B. kh-1C. khD. (kh-1)/(k-1)5,设某算法的时间复杂度函数的递推方程是T(n)=T(n-1)+n(n为正整数)及T(0)=1,则该算法的时间复杂度为()。A.O(logn)B.O(nlogn)C.O(n)D.O(n2)6 .表达式a*d-b*c的前缀形式是()。

3、A. ad*bc*-B. -*ad*bcC. a*d-b*cD. -*adbc7 .在一条长度为1的线段上随机取两个点,则以这两个点为端点的线段的期望长度是()。A. 1/2B. 1/3C. 2/3D. 3/58 .关于Catalan数Cn=(2n)!/(n+1)!/n!,下列说法中错误的是()。A. Cn表示有n+1个结点的不同形态的二叉树的个数。B. Cn表示含n对括号的合法括号序列的个数。C. Cn表示长度为n的入栈序列对应的合法出栈序列个数。D. Cn表示通过连接顶点而将n+2边的凸多边形分成三角形的方法个数。9 .假设一台抽奖机中有红、蓝两色的球,任意时刻按下抽奖按钮,都会等概率获得

4、红球或蓝球之一有足够多的人每人都用这台抽奖机抽奖假如他们的策略均为=抽中蓝球则继续抽球,抽中红球则停止。最后每个人都把自己获得的所有球放到一个大箱子里,最终大箱子里的红球与蓝球的比例接近于()。10 .为了统计一个非负整数的二进制形式中1的个数,代码如下:intCountBit(intx)|intret=0;while(x)ret+;returnret;则空格内要填入的语句是()。A. x>>=1B. x&=x-1C. x|=x>>1D. x<<=1二、不定项选择题(共5题,每题2分,共计10分;每题有一个或多个正确选项,多选或少选均不得分)1. N

5、OIP初赛中,选手可以带入考场的有()。A.笔B.橡皮C.手机(关机)D.草稿纸2. 2-3树是一种特殊的树,它满足两个条件:(1)每个内部结点有两个或三个子结点;(2)所有的叶结点到根的路径长度相同。如果一棵2-3树有10个叶结点,那么它可能有()个非叶结点。A. 5B. 6C. 7D. 83.下列关于最短路算法的说法正确的有()。A.当图中不存在负权回路但是存在负权边时,Dijkstra算法不一定能求出源点到所有点的最短路。B.当图中不存在负权边时,调用多次Dijkstra算法能求出每对顶点间最短路径。C.图中存在负权回路时,调用一次Dijkstra算法也一定能求出源点到所有点的最短路。D

6、.当图中不存在负权边时,调用一次Dijkstra算法不能用于每对顶点间最短路计算。4 .下列说法中,是树的性质的有()。A.无环B.任意两个结点之间有且只有一条简单路径C.有且只有一个简单环D.边的数目恰是顶点数目减15 .下列关于图灵奖的说法中,正确的有()。A.图灵奖是由电气和电子工程师协会(IEEE)设立的。B.目前获得该奖项的华人学者只有姚期智教授一人。C.其名称取自计算机科学的先驱、英国科学家艾伦麦席森图灵。D.它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。三、问题求解(共2题,每题5分,共计10分)1 .甲乙丙丁四人在考虑周末要不要外出郊游。已知如果周末下雨

7、,并且乙不去,则甲一定不去;如果乙去,则丁一定去;如果丙去,则丁一定不去;如果丁不去,而且甲不去,则丙一定不去。如果周末丙去了,则甲(去了/没去)(1分),乙(去了/没去)(1分),丁(去了/没去)(1分),周末(下雨/没下雨)(2分)。2 .方程a*b=(aorb)*(aandb),在a,b都取0,31中的整数时,共有组解。(*表示乘法;or表示按位或运算;and表示按位与运算)四、阅读程序写结果(共4题,每题8分,共计32分)1.#include<cstdio>intmain()intx;scanf("%d",&x);intres=0;for(int

8、i=0;i<x;+i)if(i*i%x=1)+res;)printf("%d",res);return0;)输入:15输出:2.#include<cstdio>intn,d100;boolv100;intmain()scanf("%d",&n);for(inti=0;i<n;+i)scanf("%d",d+i);vi=false;)intcnt=0;for(inti=0;i<n;+i)if(!vi)for(intj=i;!vj;j=dj)vj=true;)+cnt;)printf("%d

9、n",cnt);return0;)输入:107143259806输出:3.#include<iostream>usingnamespacestd;strings;longlongmagic(intl,intr)longlongans=0;for(inti=l;i<=r;+i)ans=ans*4+si-'a'+1;)returnans;)intmain()cin>>s;intlen=s.length();intans=0;for(intl1=0;l1<len;+l1)for(intri=l1;r1<len;+r1)boolbo=

10、true;for(intl2=0;l2<len;+l2)for(intr2=l2;r2<len;+r2)if(magic(l1,r1)=magic(l2,r2)&&(l1!=l2|r1!=r2)bo=false;)if(bo)ans+=1;)cout<<ans<<endl;return0;)输入:abacaba输出:4.#include<cstdio>usingnamespacestd;constintN=110;boolisUseN;intn,t;intaN,bN;boolisSmall()for(inti=1;i<=n;

11、+i)if(ai!=bi)returnai<bi;returnfalse;)boolgetPermutation(intpos)if(pos>n)returnisSmall();)for(inti=1;i<=n;+i)if(!isUsei)bpos=i;isUsei=true;if(getPermutation(pos+1)returntrue;)isUsei=false;)returnfalse;)voidgetNext()for(inti=1;i<=n;+i)isUsei=false;)getPermutation(1);for(inti=1;i<=n;+i)

12、ai=bi;)intmain()scanf("%d%d",&n,&t);for(inti=1;i<=n;+i)scanf("%d”,&ai);)for(inti=1;i<=t;+i)getNext();)for(inti=1;i<=n;+i)printf("%d",ai);if(i=n)putchar('n');elseputchar('');)return0;)输入1:610164532输出1:(3分)输入2:6200153426输出2:(5分)五、完善程序(共共2题,

13、每题14分,共计28分)1.对于一个1至ijn的排列P(即1至ijn中每一个数在P中出现了恰好一次),令qi为第个位置之后第一个比P值更大的位置,如果不存在这样的位置,则qi=n+1。举例来说,如果n=5且P为15423,则P为26656。下列程序读入了排列巳使用双向链表求解了答案。试补全程序。(第二空2分,其余3分)数据范围1<n<105。#include<iostream>usingnamespacestd;constintN=100010;intn;intLN,RN,aN;intmain()cin>>n;for(inti=1;i<=n;+i)in

14、tx;cin>>x;for(inti=1;i<=n;+i)Ri=JLi=i-1;(2)for(inti=1;i<=n;+i)L(3)=Lai;RLai=R(4);for(inti=1;i<=n;+i)cout<<(5)<<""cout<<endl;return0;2.一只小猪要买N件物品(N不超过1000)。它要买的所有物品在两家商店里都有卖。第i件物品在第一家商店的价格是ai,在第二家商店的价格是bi,两个价格都不小于0且不超过10000。如果在第一家商店买的物品的总额于不少于50000,那么在第一家店买的

15、物品都可以打95折(价格变为原来的0.95倍)。第一行一个数No接下来N行,每行两个数。求小猪买齐所有物品所需最少的总额。输入:第i行的两个数分别代表ai,bi。输出:输出一行一个数,表示最少需要的总额,保留两位小数。试补全程序。(第一空2分,其余3分)#include<cstdio>#include<algorithm>usingnamespacestd;constintInf=1000000000;constintthreshold=50000;constintmaxn=1000;intn,amaxn,bmaxn;boolput_amaxn;inttotal_a,t

16、otal_b;doubleans;intfthreshold;intmain()scanf("%d",&n);total_a=total_b=0;for(inti=0;i<n;+i)scanf("%d%d",a+i,b+i);if(ai<=bi)total_a+=ai;elsetotal_b+=bi;ans=total_a+total_b;total_a=total_b=0;for(inti=0;i<n;+i)if(_(1)_)_put_ai=true;total_a+=ai;elseput_ai=false;total_b+=

17、bi;if()printf("%.2f",total_a*0.95+total_b);return0;f0=0;for(inti=1;i<threshold;+i)fi=Inf;inttotal_b_prefix=0;for(inti=0;i<n;+i)if(!put_ai)total_b_prefix+=bi;for(intj=threshold-1;j>=0;-j)if(3)>=threshold&&fj!=Inf)ans=min(ans,(total_a+j+ai)*0.95+(4);fj=min(fj+bi,j>=ai?

18、(5):Inf);|)printf("%.2f",ans);return0;)第二十四届全国青少年信息学奥林匹克联赛初赛提高组参考答案、单项选择题(共10题,每题2分,共计20分)12345678910DDBADBBADB二、不定项选择题(共5题,每题2分,共计10分;每题有一个或多个正确选项,没有部分分)12345ABCDABDABDBCD三、问题求解(共2题,每题5分,共计10分)1 .去了没去没去没下雨(第4空2分,其余1分)2 .454四、阅读程序写结果(共4题,每题8分,共计32分)1. 42. 63. 164. 输出1:213564(3分)输出2:325614(5分)五、完善程序(共计28分,以下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论