noip2019第十年全国青少年信息学奥林匹克联赛普及组复赛试题

合集下载

2019年全国青少年信息学(计算机)奥林匹克分区联赛普及组复赛试题

2019年全国青少年信息学(计算机)奥林匹克分区联赛普及组复赛试题

NOIP2002普及组解题报告题一:级数求和[问题描述]::Sn=1+1/2+1/3+…+1/n。

显然对于任意一个整数K,当n足够大的时候,Sn大于K。

现给出一个整数K〔1<=K<=15〕,要求计算出一个最小的n,使得Sn>K[问题分析]:这道题目非常简单,题目的意思已经把该题的算法描述得再清楚不过了,初始时Sn=0,n=0,然后每次循环n←n+1,Sn←Sn+1/n,,直到Sn大于K,最后输出K。

另外实型(Real 是最慢的,建议用Extended)的运算速度不是很快,而K为1~15之间的整数,所以最后可以交一张表〔常量数组〕,以达到最好的效果[参考程序]:programc1;varK:Byte;n:Longint;Sn:Extended;beginReadln(K);Sn:=0;n:=0;RepeatInc(n);Sn:=Sn+1/n;UntilSn>k;Writeln(n);end.题二:选数[问题描述]:n〔1<=n<=20〕个整数x1,x2,…,xn〔1<=xi<=5000000〕,以及一个整数k〔k<n〕。

从n 个整数中任选k个整数相加,可分别得到一系列的和。

现在,要求你计算出和为素数共有多少种。

[问题分析]:此题动态规划无从下手,也无数学公式可寻,看来只能搜索〔组合的生成算法〕,其实1<=n<=20这个约束条件也暗示我们此题搜索是有希望的,组合的生成可用简单的DFS来实现,既搜索这k个整数在原数列中的位置,由于组合不同于排列,与这k个数的排列顺序无关,所以我们可以令a[I]<a[I+1]〔a[I]表示第I个数在原数列中的位置〕,这个组合生成算法的复杂度大约为C(n,k),下面给出递归搜索算法的框架:接下来的问题就是判断素数,判断一个整数P(P>1)是否为素数最简单的方法就是看是否存在一个素数a(a<=sqrt(P))是P的约数,如果不存在,该数就为素数,由于在此题中1<=xi<=5000000,n<=20,所以要判断的数P不会超过100000000,sqrt(p)<=10000,因此,为了加快速度,我们可以用筛选法将2…10000之间的素数保存到一个数组里〔共1229个〕,这样速度估计将提高5~6倍。

少儿编程NOIP2019年普及组复赛试题

少儿编程NOIP2019年普及组复赛试题

2019 年CCF 非专业级软件能力认证第二轮入门级2019 CCF CSP-J2时间:2019 年11 月16 日14:30 - 18:00二.提交源程序文件名注意事项:1.文件名(程序名和输入输出文件名)必须使用英文小写。

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

3.提交的程序代码文件的放置位置请参照各省的具体要求。

4.因违反以上三点而出现的错误或问题,申诉时一律不予受理。

5.程序可使用的栈内存空间限制与题目的内存限制一致。

6.全国统一评测时采用的机器配置为:Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz,内存32GB。

上述时限以此配置为准。

7.只提供Linux 格式附加样例文件。

8.评测在当前最新公布的NOI Linux 下进行,各语言的编译器版本以其为准。

9.最终评测时所用的编译命令中不含任何优化开关。

数字游戏(number.cpp/c/pas)【问题描述】小K 同学向小P 同学发送了一个长度为8 的01 字符串来玩数字游戏,小P 同学想要知道字符串中究竟有多少个1。

注意:01 字符串为每一个字符是0 或者1 的字符串,如“101”(不含双引号)为一个长度为3 的01 字符串。

【输入格式】输入文件名为number.in。

输入文件只有一行,一个长度为8 的01 字符串s。

【输出格式】输出文件名为number.out。

输出文件只有一行,包含一个整数,即01 字符串中字符 1 的个数。

见选手目录下的number/number1.in 和number/number1.ans。

【输入输出样例1 说明】该01 字符串中有 2 个字符1。

见选手目录下的number/number2.in 和number/number2.ans。

【输入输出样例2 说明】该01 字符串中有8 个字符1。

【输入输出样例3】见选手目录下的number/number3.in 和number/number3.ans。

第十届noip初赛试题及答案(普及组c)

第十届noip初赛试题及答案(普及组c)

第十届全国青少年信息学奥林匹克联赛初赛试题(普及组 C 语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一.选择一个正确答案代码(A/B/C/D/E),填入每题的括号内 (每题1.5分, 共30分)1.美籍匈牙利数学家冯·诺依曼对计算机科学发展所做出的贡献是()。

A.提出理想计算机的数学模型,成为计算机科学的理论基础。

B.是世界上第一个编写计算机程序的人。

C.提出存储程序工作原理,并设计出第一台具有存储程序功能的计算机EDV AC。

D.采用集成电路作为计算机的主要功能部件。

E.指出计算机性能将以每两年翻一番的速度向前发展。

2.下列哪个不是CPU(中央处理单元)()。

A. Intel ItaniumB. DDR SDRAMC. AMD Athlon64D. AMD OpteronE. IBM Power 53.下列网络上常用的名字缩写对应的中文解释错误的是()。

A.WWW(World Wide Web):万维网。

B.URL(Uniform Resource Locator):统一资源定位器。

C.HTTP(Hypertext Transfer Protocol):超文本传输协议。

D.FTP(File Transfer Protocol):快速传输协议。

E.TCP(Transfer Control Protocol):传输控制协议。

4.下面哪个部件对于个人桌面电脑的正常运行不是必需的()。

A.CPUB. 图形卡(显卡)C. 光驱D. 主板E. 内存5.下列哪个软件属于操作系统软件()。

A. Microsoft WordB. 金山词霸C. FoxmailD. WinRARE. Red Hat Linux6.下列哪个不是计算机的存储设备()。

A. 文件管理器B. 内存C. 高速缓存D. 硬盘E. U盘7.下列说法中错误的是()。

A.CPU的基本功能就是执行指令。

B.CPU访问内存的速度快于访问高速缓存的速度。

noip普及组复赛模拟试题19

noip普及组复赛模拟试题19

1. 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。

我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。

由于马路上有一些区域要用来建地铁。

这些区域用它们在数轴上的起始点和终止点表示。

已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。

现在要把这些区域中的树(包括区域端点处的两棵树)移走。

你的任务是计算将这些树都移走后,马路上还有多少棵树。

【输入格式】输入的第一行有两个整数:L(1 <= L <= 10000)和M(1 <= M <=100),L 代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。

接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

【输出格式】输出包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。

【输入样例】500 3150 300100 200470 471【输出样例】2982.足球【问题描述】:我们当中有很多热爱中国足球的同学,我们都知道中超(中国足球超级联赛)的规则:一场比赛中,若获胜(即你的得分严格大于对手得分)则获得3的积分,若打平(即你的得分等于对手得分)则获得1分,若失败(即你的得分严格小于对手得分)获得0积分。

这个问题很简单,假设N轮比赛中你一共攻入S个球,丢掉T个球,那么你可能获得的最大得分和最小得分是多少?【输入文件】多组数据,每组数据一行:一行三个整数S、T、N(S、T >= 0,N >= 1)。

【输出文件】对于每组数据输出一行,两个整数表示最大得分和最小得分。

【样例输入】1 1 11 1 2【样例输出】1 13 23. 这也叫破译?【题目描述】 NOIP吧是个很和谐的吧,一直为了OI事业而奋斗。

但是,由于吧的日益壮大,各种矛盾还是避免不了。

这两天,传说中的NOIP吧官方群群主接到一封神秘而好笑的信。

noip2019第十年全国青少年信息学奥林匹克联赛普及组复赛试题

noip2019第十年全国青少年信息学奥林匹克联赛普及组复赛试题

noip2019第十年全国青少年信息学奥林匹克联赛普及组复赛试题〔普及组三小时完成〕【一】不高兴的津津【问题描述】津津上初中了。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

NOI2019笔试题库及答案

NOI2019笔试题库及答案

NOI2019笔试题库及答案1.NOI 机试使用的操作系统是:Linux2.Linux 中为文件改名使用的命令是:mv <旧文件名> <新文件名>3.在Linux 中返回上一级目录使用的命令是:cd ..4.在Linux 中删除当前目录下的test 目录的命令是:rm -r test5.当前目录下有一个编译好的可执行文件 a.out,执行它使用的命令是:./a.out6.使用高级语言编写的程序称之为:源程序7.在NOI Linux 系统中可以用来调试程序的程序是:gdb8.在Linux 系统中,文件夹中的文件可以与该文件夹同名吗:可以9.Linux 系统中杀死名为test 的后台进程的命令是:killall test10.Linux 系统中可以查看隐藏文件的命令是:ls -a11.Linux 系统中编译C 程序的编译器是:gcc12.Linux 系统中编译Pascal 程序的编译器是:fpc13.Linux 系统中编译C++程序的编译器是:g++14. Linux 系统中,将当前目录下的文件名打印到tmp 文件中的命令是:ls >tmp 15.Linux 系统中,测量当前目录下程序test 运行时间的命令是:time ./test16. vim 编辑器中,强制退出不保存修改应当输入::q!17. vim 编辑器中,强制退出并保存修改可输入以下三种命令之一::wq、ZZ、:x18.vim 编辑器中,定位到文件中第12 行应当输入::1219. vim 编辑器中,在文件中查找字符串“12”应当输入:/1220.使用gcc 编译C 程序时,生成调试信息的命令行选项是:-g21. 使用gcc 编译C 程序时,生成所有警告信息的命令行选项是:-Wall22.使用gcc 编译C 程序时,只编译生成目标文件的命令行选项是:-c23.使用gcc 编译C 程序时,指定输出文件名的命令行选项是:-o24.如果C 程序中使用了math.h 中的函数,在编译时需要加入选项:-lm25. Linux 系统中具有最高权限的用户是:root26. 在Linux 的各个虚拟控制台间切换的快捷键是:Ctrl+Alt+F[1-6]27. 在NOI Linux 中,从字符控制台切换回桌面环境使用的快捷键是:Ctrl+Alt+F728.在NOI Linux 中默认使用的Shell 是:bash29.在Linux 中查看当前系统中的进程使用的命令是:ps30.在Linux 中查看进程的CPU 利用率使用的命令是:ps31. 如果自己的程序进入死循环,应当如何终止:Ctrl-C32. 可执行文件a.out从标准输入读取数据。

noip普及组复赛模拟试题14(附答案)

noip普及组复赛模拟试题14(附答案)

解的个数(count)给定一个正整数K,问有多少和正整数X,Y满足X>=Y且1/K=1/X+1/Y,将所有解按X降序输出。

输入第一行一个数T,表示数据组数以下T行,每行一个数K输出T部分,每部分第一行一个数K,以下一次按X降序输出所有解,个数见样例,注意=+两边都有空格。

样例输入2212样例输出21/2 = 1/6 + 1/31/2 = 1/4 + 1/481/12 = 1/156 + 1/131/12 = 1/84 + 1/141/12 = 1/60 + 1/151/12 = 1/48 + 1/161/12 = 1/36 + 1/181/12 = 1/30 + 1/201/12 = 1/28 + 1/211/12 = 1/24 + 1/24数据规模30% K<=20100% K<=10000,T<=10标程:var t,i,j,l,n,k:integer;a:array[1..20] of integer;b,c:array[1..10000] of longint;procedure shou(n:integer);var k,s:longint;begink:=n+1;s:=n*2;l:=0;for i:=k to s dobeginif n*i mod (i-n)=0 thenbegininc(l);b[l]:=(n*i) div (i-n);c[l]:=i;end;end;end;beginassign(input,'count.in');reset(input);assign(output,'count.out'); rewrite(output);readln(t);for i:=1 to t doreadln(a[i]);for k:=1 to t dobeginshou(a[k]);writeln(l);for j:=1 to l dowriteln(1,'/',a[k],' ','=',' ',1,'/',b[j],' ','+',' ',1,'/',c[j]);end;close(input);close(output);end.输入341532输出31/4 = 1/20 + 1/51/4 = 1/12 + 1/61/4 = 1/8 + 1/851/15 = 1/240 + 1/161/15 = 1/90 + 1/181/15 = 1/60 + 1/201/15 = 1/40 + 1/241/15 = 1/30 + 1/3061/32 = 1/1056 + 1/331/32 = 1/544 + 1/341/32 = 1/288 + 1/361/32 = 1/160 + 1/401/32 = 1/96 + 1/481/32 = 1/64 + 1/64不等数列(num.cpp/c/pas)【题目描述】将1到n任意排列,然后在排列的每两个数之间根据他们的大小关系插入“>”和“<”。

noip普及组复赛模拟试题15(附答案)

noip普及组复赛模拟试题15(附答案)

【基础】班委确定【试题描述】经过紧张而激烈的选拔考试,编程班终于浮出水面,一共有k位同学幸运的入选,这k位同学个个可都是精英,才华横溢,思维敏捷。

让谁做班长?让谁做学习委员?让谁做团委书记呢……?这可让班主任老师伤透了脑筋。

个个都优秀,个个都能干,实在是没有办法了。

抓阄吧!这个抓阄可不是普通的抓阄,老师让这k位同学围成一圈从一号位置开始顺时针报数报到m这个人就出圈(啊?猴子选大王啊!把我们当猴子啦?Of course not),出圈后就反向逆时针从下一个开始报数,报到n再出圈,然后再反向顺时针报到m出圈,反向逆时针报到n出圈……圈里的人越来越少,当还剩下5个人的时候那么这5个人就是编程班的班委。

Star很想当班委,为了能够当上班委,他想请你帮忙确定哪些位置是班委的位置。

【输入描述】一行:三个整数k,m和n【输出描述】一行:5个数,分别为5个班委位置的号码(号码从大到小排列)。

两个号码之间用一个空格隔开,最后一个号码没有空格【输入样例】 10 3 2【输出样例】 10 9 8 6 4【解题提示】样例说明:出圈顺序为:3 1 5 2 7 剩下4 6 8 9 10数据规模:10%的数据 k,n,m <= 1540%的数据 k,n,m <= 20060%的数据 k,n,m <= 50090%的数据 k,n,m <= 1000100%的数据 k<=1000 n,m <= 100000【试题来源】常州长训班测试var k,i,h,s,w:integer;t,z,m,n:int64;f:boolean; a:array[1..1000] of 0..1;b:array[1..5] of integer;begin readln(k,m,n); fillchar(a,sizeof(a),1);f:=true; s:=k; w:=0;while s>5 dobegint:=0;if f=true then begin h:=1;z:=m endelse begin h:=-1;z:=n end;while t<z dobeginw:=w+h; if w<=0 then w:=k+w;w:=w mod k;if w=0 then w:=k;t:=t+a[w];end;a[w]:=0;f:=not f;dec(s);end;t:=1;for i:=1 to k doif a[i]<>0 then begin b[t]:=i; inc(t);end;for i:=5 downto 2 do write(b[i],' ');write(b[1]);end.输入20 5 3 输出18 12 9 3 1输入40 9 5 输出31 25 16 2 1宝石手镯[Kolstad/Cox, 2006]贝茜在珠宝店闲逛时,买到了一个中意的手镯。

noip普及组复赛模拟试题16(附答案)

noip普及组复赛模拟试题16(附答案)

noip普及组复赛模拟试题16(附答案)【问题描述】任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能,那么这个数N就叫做Couple number。

你的工作就是判断一个数N是不是Couple number。

【输入文件】仅一行,两个长整型范围内的整数n1和n2,之间用1个空格隔开。

【输入文件】输出在n1到n2范围内有多少个Couple number。

注意:包括n1和n2两个数,且n1<="" <="10" n1="" p=""> 【输入样例】1 10【输出样例】7Couple numbera*a-b*b=n <=> (a+b)(a-b)=n如果n是奇数,则a,b一奇一偶,而n=1*n,所以,令a=(n+1)/2,b=(n-1)/2,即n一定是Couple number。

如果n是偶数,则a,b同奇同偶,此时如果n mod 4=2,则n一定是拆成一奇一偶的和,即x+y和x-y的值一定是一奇一偶,这种情况下x,y肯定无整数解,所以此时的n一定不是Couple number;如果n mod 4=0,则a=n/4+1,b=n/4-1,即n一定是Couple number。

参考程序:var x,y,i,ans:longint;begin assign(input,'couple.in'); reset(input);readln(x,y); close(input);ans:=0;for i:=x to y dobeginif odd(i) then inc(ans)else if i mod 4=0 then inc(ans);end;assign(output,'couple.out');rewrite(output);writeln(ans);close(output);end.10 90(60)5000 12000(5251)100000 200000(75001)对于某个数n,,我们这次的工作仅是求出小于n且和n互质的数的个数,,比如n=10时 1,3,7,9均与10互质//互质的定义是gcd(a,b)=1输入格式 InputFormat输入只有一行,一个数N(1<=N<=2,000,000,000)。

noip普及组复赛模拟试题6答案

noip普及组复赛模拟试题6答案

计算机发明之前,数学家们需要手工进行数学计算。

遇到复杂计算往往要花去大量时间,而且正确率也不高。

现在可不一样了,有了计算机人们能快速而正确地求解数学问题。

小雪是个中学生,可已经能熟练的运用计算机编写程序了。

为了提高自己的计算机水平,小学经常将数学老师布置的题目用计算机加以求解。

有一次,数学老师提出这样一个问题:对于给定的一对自然数m 与n )(n m 在m 与n 之间(包含m 和n )有多少素数呢?小雪很快得出了答案。

现在请你也编写程序实现。

(1不为素数)输入:文件的第一行为一个数k ,表示有k 对自然数。

以后k 行每行有两个自然数,第一个自然数为m ,第二个自然数为n 。

输出:依次输出每一对数之间的素数个数。

每个结果占一行。

例如:输入:21 510 20输出:34var n,i,s,x,y,j,t,h:longint;begin read(n);for i:=1 to n dobegin readln(x,y);h:=0;for t:=x to y dobegin s:=0;for j:=1 to t doif t mod j=0 then s:=s+1;if s=2 then h:=h+1;end;writeln(h);end;end.输入35 20输出6100 200 输出21500 1000 输出73当前有面值分别为a 分,b 分,c 分,d 分(a>b>c>d=1)的硬币,请给出找n 分钱的最佳方案(要求找出的硬币数目最少)输入:a,b,c,d,n输出:硬币各几个例:输入:25 10 5 1 36输出:25 10 5 11 1 0 1又例:输入:10 8 5 1 13输出: 10 8 5 10 1 1 0var a,b,c,d,min,s,n,t,a1,a2,a3,a4,b1,b2,b3,b4:integer;beginreadln(a,b,c,d,n);min:=9999;for a1:=0 to n div a dofor a2:=0 to n div b dofor a3:=0 to n div c dofor a4:=0 to n div d dobegint:=a1+a2+a3+a4;s:=a1*a+a2*b+a3*c+a4*d;if (s=n)and(t<min) then beginmin:=t;b1:=a1;b2:=a2;b3:=a3;b4:=a4;end;end;writeln(a:5,b:5,c:5,d:5);writeln(b1:5,b2:5,b3:5,b4:5)readln;end. 输入100 35 20 12 271输出100 35 20 122 1 0 3输入80 65 42 35 453 输出80 65 42 351 1 4 4在下面的算式中每个“#”都表示一个素数数字。

2019年CSP-J初赛试题(NOIP普及组)试题详解

2019年CSP-J初赛试题(NOIP普及组)试题详解

2019年CSP-J初赛试题(普及组)试题详解一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1.中国的国家顶级域名是?B.chC.chnD.china【答案】A2.二进制数11 1011 1001 0111和01 0110 1110 1011 进行逻辑与运算的结果是?A. 01 0010 1000 1011B. 01 0010 1001 0011C. 01 0010 1000 0001D. 01 0010 1000 0011【答案】D【解析】3.一个32位整型变量占用的字节数是?A.32B.128C.4D.8【答案】C【解析】32÷8=4(字节)4.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c 大于0):s=a;for(b=1;b<=c;b++)s=s-1;则与上述程序段功能等价的赋值语句是?A.s=a-c;B.s=a-b;C.s=s-c;D.s=b-c;【答案】A5.设有100个已排好序的数据元素,采用折半查找时,最大比较次数为?A.7B.10C.6D.8【答案】 A【解析】26<100<276.链表不具有的特点是?A. 插入删除不需要移动元素B.不必事先估计存储空间C.所需空间与线性表长度成正比D.可随机访问任一元素【答案】D7.7.把8个同样的球放在5个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的分法(如果8个球都放在一个袋子里,无论是哪个袋子,都只算同一种分法)?【答案】C【解析】因为袋子数量不多,可以枚举出所有分法:0,0,0,0,80,0,0,1,70,0,0,2,60,0,0,3,50,0,0,4,40,0,1,1,60,0,1,2,50,0,1,3,40,0,2,2,40,0,2,3,30,1,1,1,50,1,1,2,40,1,1,3,30,1,2,2,30,2,2,2,21,1,1,1,41,1,1,2,31,1,2,2,28.一棵二叉树如右图所示,若采用顺序存储结构,即用一维数组元素存储该二叉树中的结点(根结点的下标为1,若某结点的下标为i,则其左孩子位于下标2i处、右孩子位于下标2i+1处),则该数组的最大下标至少为?【答案】C【解析】2^4-1=159.100以内最大的素数是?A.89B.97.C.91D.93【答案】B10.319和377的最大公约数是?A.27B.33C.29D.31【答案】C11.新学期开学了,小胖想减肥,健身教练给小胖制定了两个训练方案。

2019年CSP-J初赛试题(NOIP普及组)试题详解

2019年CSP-J初赛试题(NOIP普及组)试题详解

2019年CSP-J初赛试(普及组)试题详解一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1.中国的国家顶级域名是?A. CnB. ChC. ChnD. China【答案】A2.二进制数11 1011 1001 Olll和01 0110 1110 1011进行逻辑与运算的结果是?A. 01 0010 1000 1011B. 01 0010 1001 0011C. 01 0010 1000 0001D. 01 0010 1000 0011【答案】D【解析】3.一个32位整型变量占用的字节数是?A. 32B. 128C. 4D. 8【答案】C【解析】32÷8=4 (字节)4.若有如下程序段,其中s、a. b、C均已定义为整型变量,且a、C均已赋值(C 大于0):s=a;for (b=l;b<=c;b++)S=S-I;则与上述程序段功能等价的赋值语句是?A. s=a-c;B. s=a~b;C.S=S-C;D.s=b~c;【答案】A5.设有100个已排好序的数据元素,采用折半查找时,最大比较次数为?A. 7B. 10C. 6D. 8【答案】A【解析】26<100<276.链表不具有的特点是?A.插入删除不需要移动元素B•不必事先估计存储空间C•所需空间与线性表长度成正比D.可随机访问任一元素【答案】D7・7・把8个同样的球放在5个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的分法(如果8个球都放在一个袋子里,无论是哪个袋子,都只算同一种分法)?A. 22B. 24C. 18D. 20【答案】C【解析】因为袋子数量不多,可以枚举岀所有分法:0, 0, 0, 0, 80, 0, 0, 1, 70, 0, 0, 2, 60, 0, 0, 3, 50, 0, 0, 4, 40, 0, 1, 1, 60, 0, 1, 2, 50, 0, 1, 3, 40, 0, 2, 2, 40, 0, 2, 3, 30, 1, 1, 1, 50, 1, 1, 2, 40, 1, 1, 3, 30, 1, 2, 2, 30, 2, 2, 2, 21, 1, 1, 1, 41, 1, 1, 2, 31, 1, 2, 2, 28.—棵二义树如右图所示,若采用顺序存储结构,即用一维数组元素存储该二义树中的结点(根结点的下标为1,若某结点的下标为i,则其左孩子位于下标2i处右孩子位于下标2i+l处),则该数组的最大下标至少为?、A. 6B. 10C. 15.D. 12【答案】C【解析】2^4-l=159.100以内最大的素数是?A. 89B. 97.C. 91D. 93【答案】B10.319和377的最大公约数是?A. 27B. 33C. 29D. 31【答案】C11•新学期开学了,小胖想减肥,健身教练给小胖制定了两个训练方案。

历届noip提高组复赛试题

历届noip提高组复赛试题

NOI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛分区联赛复赛试题(高中组)(上机编程,完成时间:210分钟)<1>编码问题:设有一个数组A:ARRAY[0..N-1] OF INTEGER;数组中存放的元素为0~N-1之间的整数,且A[i]≠A[j](当i≠j时)。

例如: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,……N k(k表示不同颜色灯的个数)。

放灯时要遵守下列规则:①同一种颜色的灯不能分开;②不同颜色的灯之间至少要有一个空位置。

例如:N=8(格子数)R=2(红灯数)B=3(蓝灯数)放置的方法有:R-B顺序B-R顺序放置的总数为12种。

数据输入的方式为:NP1(颜色,为一个字母)N1(灯的数量)P2 N2……Q(结束标记,Q本身不是灯的颜色)程序要求:求出一种顺序的排列方案及排列总数。

<3> 设有一个四层的积木块,1~4层积木块的数量依次为:5,6,7,8如下图所示放置:其中,给出第三层与第四层所标示的数字,并已知第三层的数据是由第四层的数据计算出来的。

计算的方法是:第三层的某个数据A是由第四层相邻的两个数据B,C经过某种计算后产生的:计算所用到的计算符为:+,-,⨯,且无优先级之分(自左向右计算),运算符最多为2个。

如:3+4⨯5=35 5⨯4+3=23可以看出,上图中的第三层的数据是由第四层的数据用以下计算公式计算出来的:A=B⨯C+B也就是:8=2⨯3+2,15=3⨯4+3,……14=2⨯6+2程序要求:给出第四层与第三层的数据后,将第一、二层的每块积木标上相应的数据,并输出整个完整的积木图及计算公式。

历年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复赛试题及答案NOIP2011-1. 在二进制下,1011001 + ()= 1100110。

同普及组 [单选题] *A.1011B.1101(正确答案)C.1010D.1111NOIP2011-2. 字符“A”的 ASCII 码为十六进制 41,则字符“Z”的 ASCII码为十六进制的()。

[单选题] *A.66B.5A(正确答案)C.50D.视具体的计算机而定NOIP2011-3. 下图是一棵二叉树,它的先序遍历是()。

[单选题] *A.ABDEFC(正确答案)B.DBEFACC.DFEBCAD.ABCDEFNOIP2011-4. 寄存器是()的重要组成部分。

同普及组 NOIP2011-6 [单选题] *A.硬盘B.高速缓存C.内存D.中央处理器(CPU)(正确答案)NOIP2011-5. 广度优先搜索时,需要用到的数据结构是()。

同普及组 [单选题] *A.链表B.队列(正确答案)C.栈D.散列表NOIP2011-8. 为解决 web应用中的不兼容问题,保障信息的顺利流通,()制定了一系列标准,涉及HTML、XML、CSS 等,并建议开发者遵循。

[单选题] *A.微软B.美国计算机协会(ACM)C.联合国教科文组织D.万维网联盟(W3C)(正确答案)NOIP2011-9.体育课的铃声响了,同学们都陆续的奔向操场,按老师的要求从高到低站成一排。

每个同学按顺序来到操场时,都从排尾走到排头,找到第一个比自己高的同学,并站在他的后面。

这种站队的方法类似于()算法。

[单选题] *A.快速排序B.插入排序(正确答案)C.冒泡排序D.归并排序NOIP2011-10. 1956 年()授予肖克利(William Shockley)、巴丁(JohnBardeen)和布拉顿(WalterBrattain),以表彰他们对半导体的研究和晶体管效应的发现。

同普及组 NOIP2011-18 [单选题] *A.诺贝尔物理学奖(正确答案)B.约翰·冯·诺依曼奖C.图灵奖D.高德纳奖(DonaldE. KnuthPrize)NOIP2012-2.()是主要用于显示网页服务器或者文件系统的 HTML 文件内容,并让用户与这些文件交互的一种软件。

第十年全国青少年信息学奥林匹克联赛提高组复赛试题

第十年全国青少年信息学奥林匹克联赛提高组复赛试题

第十年全国青少年信息学奥林匹克联赛提升组复赛试题( 提升组 3 小时达成 )【一】津津的积蓄计划(Save.pas / dpr /c/ cpp) 、【问题描绘】津津的零花费向来基本上自己治理。

每个月的月初妈妈给津津300 元钱,津津会估算那个月的开销,同时总能做到实质开销和估算的同样。

为了让津津学习怎样积蓄,妈妈提出,津津可以随时把整百的钱存在她那边,到了年终她会加上 20%还给津津。

所以津津拟订了一个积蓄计划:每个月的月初,在获得妈妈给的零花费后,若是她估计到那个月的月底手中还会有多于 100 元或恰巧 100 元,她就会把整百的钱存在妈妈那边,节余的钱留在自己手中。

比如 11 月初津津手中还有 83 元,妈妈给了津津 300 元。

津津估计 11 月的开销是 180 元,那么她就会在妈妈那边存 200 元,自己留下 183 元。

到了 11 月月底,津津手中会剩下 3 元钱。

津津发明那个积蓄计划的重要风险是,存在妈妈那边的钱在年终以前不可以拿出。

有可能在某个月的月初,津津手中的钱加上那个月妈妈给的钱,不够那个月的原定估算。

若是出现这类状况,津津将不得不在那个月节衣缩食,压缩估算。

此刻请你依据 2004 年 1 月到 12 月每个月津津的估算,判断会可不可以出现这类状况。

若是可不可以,计算到2004 年年终,妈妈将津津平时存的钱加上20%还给津津以后,津津手中会有多少钱。

【输入文件】输入文件 save.in 包含 12 行数据,每行包含一个小于 350 的非负整数,分别表示 1 月到 12 月津津的估算。

【输出文件】输出文件 save.out 包含一行,这一行只包含一个整数。

若是积蓄计划实行过程中出现某个月钱不够用的状况,输出 -X ,X 表示出现这类状况的第一个月;否那么输出到 2004 年年终津津手中会有多少钱。

【样例输入 1】29023028020030017034050908020060【样例输出 1】-7【样例输入 2】29023028020030017033050908020060【样例输出 2】1580【二】归并果子(fruit.pas /dpr /c/cpp) 【问题描绘】在一个果园里,多多差不多将所有的果子打了下来,并且按果子的不一样种类分红了不一样的堆。

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

noip2019第十年全国青少年信息学奥林匹克联赛普及组复赛试题〔普及组三小时完成〕【一】不高兴的津津【问题描述】津津上初中了。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

现在给定一块花生田的大小和花生的分布,请问在限定时间内,多多最多可以采到多少个花生?注意可能只有部分植株下面长有花生,假设这些植株下的花生个数各不相同。

例如在图2所示的花生田里,只有位于(2,5),(3,7),(4,2),(5,4)的植株下长有花生,个数分别为13,7,15,9。

沿着图示的路线,多多在21个单位时间内,最多可以采到37个花生。

【输入文件】输入文件peanuts.in的第一行包括三个整数,M,N和K,用空格隔开;表示花生田的大小为M*N〔1<=M,N<=20〕,多多采花生的限定时间为K〔0<=K<=1000〕个单位时间。

接下来的M行,每行包括N个非负整数,也用空格隔开;第i+1行的第j个整数Pij〔0<=Pij<=500〕表示花生田里植株(i,j)下花生的数目,0表示该植株下没有花生。

【输出文件】输出文件peanuts.out包括一行,这一行只包含一个整数,即在限定时间内,多多最多可以采到花生的个数。

【样例输入1】672100000000000130000000070150000000090000000000【样例输出1】37【样例输入2】672000000000000130000000070150000000090000000000【样例输出2】28【三】FBI树(fbi.pas/dpr/c/cpp)【问题描述】我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I 串,既含“0”又含“1”的串那么称为F串。

FBI树是一种二叉树[1],它的结点类型也包括F结点,B结点和I结点三种。

由一个长度为2N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:1)T的根结点为R,其类型与串S的类型相同;2)假设串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左子串S1构造R的左子树T1,由右子串S2构造R的右子树T2。

现在给定一个长度为2N的“01”串,请用上述构造方法构造出一棵FBI树,并输出它的后序遍历[2]序列。

【输入文件】输入文件fbi.in的第一行是一个整数N〔0<=N<=10〕,第二行是一个长度为2N的“01”串。

【输出文件】输出文件fbi.out包括一行,这一行只包含一个字符串,即FBI树的后序遍历序列。

【样例输入】310001011【样例输出】IBFBBBFIBFIIIFF【数据规模】对于40%的数据,N<=2;对于全部的数据,N<=10。

【四】火星人(martian.pas/dpr/c/cpp)【问题描述】人类终于登上了火星的土地并且见到了神秘的火星人。

人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。

这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答。

火星人用一种非常简单的方式来表示数字——掰手指。

火星人只有一只手,但这只手上有成千上万的手指,这些手指排成一列,分别编号为1,2,3……。

火星人的任意两根手指都能随意交换位置,他们就是通过这方法计数的。

一个火星人用一个人类的手演示了如何用手指计数。

如果把五根手指——拇指、食指、中指、无名指和小指分别编号为1,2,3,4和5,当它们按正常顺序排列时,形成了5位数12345,当你交换无名指和小指的位置时,会形成5位数12354,当你把五个手指的顺序完全颠倒时,会形成54321,在所有能够形成的120个5位数中,12345最小,它表示1;12354第二小,它表示2;54321最大,它表示120。

下表展示了只有3根手指时能够形成的6个3位数和它们代表的数字:三进制数123132213231312321代表的数字123456现在你有幸成为了第一个和火星人交流的地球人。

一个火星人会让你看他的手指,科学家会告诉你要加上去的很小的数。

你的任务是,把火星人用手指表示的数与科学家告诉你的数相加,并根据相加的结果改变火星人手指的排列顺序。

输入数据保证这个结果不会超出火星人手指能表示的范围。

【输入文件】输入文件martian.in包括三行,第一行有一个正整数N,表示火星人手指的数目〔1<=N<=10000〕。

第二行是一个正整数M,表示要加上去的小整数〔1<=M<=100〕。

下一行是1到N这N个整数的一个排列,用空格隔开,表示火星人手指的排列顺序。

【输出文件】输出文件martian.out只有一行,这一行含有N个整数,表示改变后的火星人手指的排列顺序。

每两个相邻的数中间用一个空格分开,不能有多余的空格。

【样例输入】5312345【样例输出】12453【数据规模】对于30%的数据,N<=15;对于60%的数据,N<=50;对于全部的数据,N<=10000;--------------------------------------------------------------------------------[1]二叉树:二叉树是结点的有限集合,这个集合或为空集,或由一个根结点和两棵不相交的二叉树组成。

这两棵不相交的二叉树分别称为这个根结点的左子树和右子树。

[2]后序遍历:后序遍历是深度优先遍历二叉树的一种方法,它的递归定义是:先后序遍历左子树,再后序遍历右子树,最后访问根。

NOIP普及组复赛参考程序-NOIP2004普及组解题参考第一题:不高兴的津津方法:枚举程序:programunhappy;{writenbylxq2004.11.20}vara,i,x,y,d,max:byte;beginassign(input,'unhappy.in');reset(input);assign(output,'unhappy.out');rewrite(output);d:=0;max:=8;fori:=1to7dobeginreadln(x,y);a:=x+y;ifa>maxthenbeginmax:=a;d:=i;end;end;writeln(d);close(input);close(output);end.第二题:花生采摘方法:排个序,然后迭代递推程序:programpeanuts;{writenbylxq2004.11.20} typemytype=recordx,y,d:integer;end;vartime,all,num,i,j,m,n,k,u,v,z:integer;q:array[1..400]ofmytype;t:mytype;beginall:=0;assign(input,'peanuts.in');reset(input);readln(m,n,k);fori:=1tomdobeginforj:=1tondobeginread(u);ifu>0thenbegininc(all);q[all].x:=i;q[all].y:=j;q[all].d:=u;ifall>1thenbeginv:=1;whileq[v].d>udoinc(v);t:=q[all];forz:=alldowntov+1doq[z]:=q[z-1];q[v]:=t;end;end;end;readln;end;close(input);num:=0;time:=0;u:=0;v:=q[1].y;fori:=1toalldobeginiftime+abs(q[i].x-u)+abs(q[i].y-v)+1+q[i].x<=k thenbegininc(num,q[i].d);time:=time+abs(q[i].x-u)+abs(q[i].y-v)+1;u:=q[i].x;v:=q[i].y;elsebreak;end;assign(output,'peanuts.out');rewrite(output);writeln(num);close(output);end.第三题FBI树方法:递归即可,按后序遍历直接边生成边打印。

程序:programfbi;{writenbylxq2004.11.20}varf:array[1..1024]ofchar;i,k,n:integer;c:char;functionlastorder(i,j,n:integer):char; varlc,rc:char;beginifn=0thenlastorder:=f[i]elsebeginlc:=lastorder(i,(i+j)div2,n-1);write(lc);rc:=lastorder((i+j)div2+1,j,n-1);write(rc);iflc=rcthenlastorder:=lcelselastorder:='F'; end;end;beginassign(input,'fbi.in');reset(input);readln(n);k:=1;fori:=1tondok:=k*2;fori:=1tokdobeginread(c);ifc='0'thenf[i]:='B'elsef[i]:='I'end;readln;close(input);assign(output,'fbi.out');rewrite(output);writeln(lastorder(1,k,n));close(output);第四题火星人方法:排列生成法,直接从指定序列用排列产生方法顺序生成到后面M个。

相关文档
最新文档