noip普及组复赛模拟试题17(附答案)
NOIP普和组复赛试题c版本

{
if(d[i+l1][j+l2]!=-1)
d[i+l1][j+l2]++;
}//边上八个位置旳格子不是雷则
数值加1
}
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
if(
d[i][j]==-1) cout<<'*';
else cout<<d[i][j];
cout<<endl;
-5-
参照程序
➢ #include <iostream>
➢ using namespace std;
➢ int main()
➢{
➢
long d[102][102];
➢
long n,m;
➢
cin>>n>>m;
➢
long i,j;
➢
char ch;
➢
for(i=0;i<=n;i++)
➢
{
➢
for(j=0;j<=m;j++)
➢
for(int i=1;i<=n;i++)
➢
{
- 16 -
BYE
温馨提醒: 先了解题目在看题解。
试题分析
The END
2017. 07. 28
➢ 请计算前K天里,骑士一共取得了多少金币。 ➢ 对于全部数据,1≤K≤10000。
➢ 【分析】K旳规模比较少,直接用模拟,一天一天发金币。 ➢ N天发N枚金币,N递增1,剩余天数K-N ➢ 估计时间15-25分钟
NOIP普及组初赛历年试题及答案选择题篇

NOIP普及组初赛历年试题及答案选择题篇单项选择题:每次共20题,每题1.5分,共计30分。
每题有且仅有一个正确选项。
注:答案在文末一、运算机基础(每一年8-10题,占选择题的一半,找份材料翻几遍就可拿分了)NOIP2020-3. 一片容量为8G的SD卡能贮存大约( )张大小为2MB的数码照片。
A.1600B.2000C.4000D.16000NOIP2020-4. 摩尔定律(Moore'slaw)是由英特尔开创人之一戈登·摩尔(GordonMoor)提出来的。
依照摩尔定律,在过去几十年一级在可预测的以后纪念,单块集成电路的集成度大约每( )个月翻一番。
A.1B.6C.18D.36NOIP2020-6.寄放器是( )的重要组成部份。
A.硬盘B.高速缓存C.内存D.中央处置器(CPU)NOIP2020-10. 有人以为,在个人电脑送修前,将文件放入回收站中确实是已经将其删除。
这种方式是( )。
A .正确的,将文件放入回收站以为着完全删除、无法恢复B.不正确的,只有将回收站清空后,才意味着完全删除、无法恢复C.不正确的,即便回收站清空,文件只是被标记为删除,仍可能通过答复软件找回D.不正确的,只要在硬盘上显现过的文件,永久不可能被完全删除NOIP2020-14. 生物特点识别,是利用人体本身的生物特点进行身份认证的一种技术。
目前,指纹识别、虹膜识别、人脸识别等技术已普遍应用于政府、银行、平安防卫等领域。
以下不属于生物特点识别技术及其应用的是( )。
NOIP2020-16. 关于汇编语言,以下说法错误的选项是( )。
A.是一种与具体硬件相关的程序设计语言B.在编写复杂程序时,相关于高级语言而言代码量较大,且不易调试C.能够直接访问寄放器、内存单元、和I/O端口D.随着高级语言的诞生,现在已完全被淘汰,再也不利用NOIP2020-18. 1956年( )授予肖克利、巴丁和布拉顿,以表彰他们对半导体的研究和晶体管效应的发觉。
noip2017普及组初赛试题+答案

第23届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2017年10 月14 日14:30~16:30选手注意:1、试题纸共有8 页,答题纸共有2 页,满分100 分。
请在答题纸上作答,写在试题纸上的一律无效。
2、不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)1.在 8 位二进制补码中,10101011 表示的数是十进制下的( )。
A. 43B. -85C. -43D. -84解析:补码就是符号位不变,其他各位逐位求反再加一结论:-85 答案B2.计算机存储数据的基本单位是( )。
A. bitB. ByteC. GBD. KB3.下列协议中与电子邮件无关的是( )。
A. POP3B. SMTPC. WTOD. IMAP4.分辨率为 800x600、16 位色的位图,存储图像信息所需的空间为( )。
A.937.5KBB. 4218.75KBC.4320KBD. 2880KB解析:800*600*16/8=A5.计算机应用的最早领域是( )。
A. 数值计算B. 人工智能C. 机器人D. 过程控制6.下列不属于面向对象程序设计语言的是( )。
A. CB. C++C. JavaD. C#解析:新出的语言都是面向对象的,OOP的,旧的不是,答案A7.NOI 的中文意思是( )。
A. 中国信息学联赛B. 全国青少年信息学奥林匹克竞赛C. 中国青少年信息学奥林匹克竞赛D. 中国计算机协会解析:全国青少年信息学奥林匹克竞赛答案:B8. 2017年10月1日是星期日,1999年10月1日是( )。
A. 星期三B. 星期日C. 星期五D. 星期二解析:什么年是闰年?你首先想到的可能是能被4整除的年就是闰年。
实际上这是不正确的,公历里闰年的定义是这种:能被400整除的,或者不能被100整除而能被4整除的年就是闰年,换一句话说,非世纪年份中能被4整除的,和世纪年份中能被400整除的是闰年。
noip普及组复赛模拟试题17(附答案)

图书馆馆长正犯愁呢,原来,有一堆的书要他整理,每本书都有一个书号(<=32767),现在他有一本书,这本书的书号为K(<=32767),现在他要找出一本书号比这本书大的书和书号比这本小的书(但都要最接近图书馆馆长已有的书号),将找到的这两本书的书号加起来,并算出加起来以后的数是否为素数Input第一行二个数为N,K,表示几本书以及手中书的书号(<=32767)第二行开始有N个整数,表示这些书的书号Output第一行一个数,表示两本书书号加起来的和第二行一个字符,表示和是否为素数,若是则输出"Y"否则输出"F"(引号不打出)Sample Input6 56 4 5 3 1 20Sample Output10Fprogram ex1148;var n,k,i,x,s:integer;a:array[0..32767] of integer;f:boolean;beginreadln(n,k);fillchar(a,sizeof(a),0);for i:=1 to n dobeginread(x);a[x]:=1;end;s:=0;for i:=k+1 to 32767 doif a[i]<>0 then begin s:=s+i;break; end;for i:=k-1 downto 1 doif a[i]<>0 then begin s:=s+i;break; end;f:=true;for i:=2 to trunc(sqrt(s)) doif s mod i=0 then begin f:=false;break;end;writeln(s);if f=true then write('Y') else write('F');end.输入12 78 12 18 7 11 3 20 15 14 26 21 16 输出11Y输入21 104 7 12 10 18 29 156 17 3 11 20 21 24 14 2 22 26 13 19 9 输出20F父母准备带你到新疆阿克苏旅行,你很高兴的开始准备旅行。
NOIP2017普及组初赛试题及详细解析

输入: 7 3 输出: ________ 答案:8
递归调用的时候要能够比较清晰的把下面的式子写出来 g(8,4,0)=g(8,3,0)+g(7,3,1)+g(6,3,2)=10+4+1=15 g(8,3,0)=g(8,2,0)+g(7,2,1)+g(6,2,2)=5+3+2=10 g(8,2,0)=g(8,1,0)+g(7,1,1)+g(6,1,2)+g(5,1,3)+g(4,1,4)=5 g(7,2,1)=g(6,1,1)+g(5,1,2)+g(4,1,3)=3 g(6,2,2)=g(4,1,2)+g(3,1,3)=2 g(7,3,1)=g(6,2,1)+g(5,2,2)=3+1=4 g(6,2,1)=g(5,1,1)+g(4,1,2)+g(3,1,3)=3 g(5,2,2)=g(3,1,2)=1 g(6,3,2)=g(4,2,2)=g(2,1,2)=1
最后的 8 不用比较,直接放到 C 中,C[] = {1, 2, 3, 4} 共比较了 3 次,即 2n - 1 次
18. 从()年开始,NOIP 竞赛将不再支持 Pascal 语言。 A. 2020 B. 2021 C. 2022 D. 2023
答案:C 从 2022 年开始,NOIP 将不可使用 C 和 Pascal,只能使用 C++
D.s->next=hs;hs=hs->next; 答案:B
新元素入栈后,要把栈顶指针指到新元素的位置
14. 若串 S = “copyright”,其子串的个数是( )。 A. 72 B. 45 C. 46 D. 36 答案:C
NOIP普及组初赛历年试题及标准答案选择题篇

NOIP普及组初赛历年试题及答案选择题篇————————————————————————————————作者:————————————————————————————————日期:NOIP普及组初赛历年试题及答案选择题篇单项选择题:每次共20题,每题1.5分,共计30分。
每题有且仅有一个正确选项。
注:答案在文末一、计算机基础(每年8-10题,占选择题的一半,找份材料翻几遍就可拿分了)NOIP2011-3. 一片容量为8G的SD卡能储存大约( )张大小为2MB的数码照片。
A.1600B.2000C.4000D.16000NOIP2011-4. 摩尔定律(Moore'slaw)是由英特尔创始人之一戈登·摩尔(GordonMoor)提出来的。
根据摩尔定律,在过去几十年一级在可预测的未来纪念,单块集成电路的集成度大约每( )个月翻一番。
A.1B.6C.18D.36NOIP2011-6.寄存器是( )的重要组成部分。
A.硬盘B.高速缓存C.内存D.中央处理器(CPU)NOIP2011-10. 有人认为,在个人电脑送修前,将文件放入回收站中就是已经将其删除了。
这种想法是( )。
A .正确的,将文件放入回收站以为着彻底删除、无法恢复B.不正确的,只有将回收站清空后,才意味着彻底删除、无法恢复C.不正确的,即使回收站清空,文件只是被标记为删除,仍可能通过回复软件找回D.不正确的,只要在硬盘上出现过的文件,永远不可能被彻底删除NOIP2011-14. 生物特征识别,是利用人体本身的生物特征进行身份认证的一种技术。
目前,指纹识别、虹膜识别、人脸识别等技术已广泛应用于政府、银行、安全防卫等领域。
以下不属于生物特征识别技术及其应用的是( )。
NOIP2011-16. 关于汇编语言,下列说法错误的是( )。
A.是一种与具体硬件相关的程序设计语言B.在编写复杂程序时,相对于高级语言而言代码量较大,且不易调试C.可以直接访问寄存器、内存单元、以及I/O端口D.随着高级语言的诞生,如今已完全被淘汰,不再使用NOIP2011-18. 1956年( )授予肖克利、巴丁和布拉顿,以表彰他们对半导体的研究和晶体管效应的发现。
NOIP2021复赛普及组试题

2
5
6
三元组:(x,
y, z),其中 x,y,z 都代表纸带上格子的编号,那个地址的三元组要求知足以下两个条件:
1. , , 都是整数, < < , − = −
2. =
知足上述条件的三元组的分数规定为(x + z) ∗ ( + )。整个纸带的分
纸带如题目描述中的图所示。
所有知足条件的三元组为:(1,3, 5), (4, 5, 6)。
因此纸带的分数为(1 + 5) ∗ (5 + 2) + (4 + 6) ∗ (2 + 2) = 42 + 40 = 82。
【输入输出样例 2】
15 4
1388
5 10 8 2 2 2 9 9 7 7 5 6 4 2 4
该格将会显现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出
任何地雷格的条件下,找出所有的非地雷格。
此刻给出 n 行 m 列的雷区中的地雷散布,要求计算出每一个非地雷格周围的地雷格
数。
注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方
向上与之直接相邻的格子。
【输入格式】
S1≤S2≤…≤Sn<108。
接下来的一行有 N 个正整数,其中第 i 个整数 Ai 表示向第 i 户住户推销产品会积存的疲劳
值。数据保证 Ai<103。
【输出格式】
输出文件名为 。
输出 N 行,每行一个正整数,第 i 行整数表示当 X=i 时,阿明最多积存的疲劳值。
【输入输出样例 1】
5
15
12345
19
12345
22
noip普及组初赛模拟考试题[附答案解析]
![noip普及组初赛模拟考试题[附答案解析]](https://img.taocdn.com/s3/m/0821b90583c4bb4cf7ecd1c3.png)
选择一个正确答案代码(A/B/C/D),填入每题的括号内 (每题1.5分,多选无分, 共30 分)题号 1 2 3 4 5 6 7 8 9 10选择 C D C D D B B A B C题号 11 12 13 14 15 16 17 18 19 20选择 C D D A B C C D C B 二.问题求解(共2题,每题5分,共计10分)1. 当m=4,n=4时选法数=352. 共有多少种选法 1360二. 阅读程序,并写出程序的正确运行结果:(共4题,每题8分,共32分)1. 程序的运行结果是: 1262. 程序的运行结果是: 115 1123.程序的运行结果是:114. 程序的运行结果是: DCBA CDBA CBDA CBAD BDCA BCDA BCAD BADC BACDADCB ACDB ACBD ABDC ABCDNum=14四.根据题意, 将程序补充完整 (每空2.8分,共28分)1.①readln(d,i);②d-1③x*2+1④a[x]:=(4)true;2.①j<=trunc(sqrt(k))②L-1③a[v]<=m④inc(v)⑤s=2*L-1一、选择题:共20题,每题1.5分,共计30分1. 关于计算机语言,正确的说法是(C)。
A.BASIC语言是一种高级语言,每台计算机都必须配备B.汇编语言是一种比BASIC语言更高级的计算机语言C.机器语言是计算机可以直接识别的语言,但编程比较困难D.PASCAL语言是BASIC语言的更高版本2. 计算机接入网络后,它的功能会大大拓展,主要表现在( D )。
A.共享资源与分担负荷 B.数据通讯C.可以使用他人的资源 D.以上三项功能都有【分析与解答】计算机网络能够实现的功能是:数据通讯,资源共享,实现信息的分布式处理和提高计算机系统的可靠性与实用性。
故本题答案为D。
3. 若某数的原码为A7H,则其对应的补码为( C )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图书馆馆长正犯愁呢,原来,有一堆的书要他整理,每本书都有一个书号(<=32767),现在他有一本书,这本书的书号为K(<=32767),现在他要找出一本书号比这本书大的书和书号比这本小的书(但都要最接近图书馆馆长已有的书号),将找到的这两本书的书号加起来,并算出加起来以后的数是否为素数Input第一行二个数为N,K,表示几本书以及手中书的书号(<=32767)第二行开始有N个整数,表示这些书的书号Output第一行一个数,表示两本书书号加起来的和第二行一个字符,表示和是否为素数,若是则输出"Y"否则输出"F"(引号不打出)Sample Input6 56 4 5 3 1 20Sample Output10Fprogram ex1148;var n,k,i,x,s:integer;a:array[0..32767] of integer;f:boolean;beginreadln(n,k);fillchar(a,sizeof(a),0);for i:=1 to n dobeginread(x);a[x]:=1;end;s:=0;for i:=k+1 to 32767 doif a[i]<>0 then begin s:=s+i;break; end;for i:=k-1 downto 1 doif a[i]<>0 then begin s:=s+i;break; end;f:=true;for i:=2 to trunc(sqrt(s)) doif s mod i=0 then begin f:=false;break;end;writeln(s);if f=true then write('Y') else write('F');end.输入12 78 12 18 7 11 3 20 15 14 26 21 16 输出11Y输入21 104 7 12 10 18 29 156 17 3 11 20 21 24 14 2 22 26 13 19 9 输出20F父母准备带你到新疆阿克苏旅行,你很高兴的开始准备旅行。
现在你有M元钱,可以采购N种物品,每种物品最多可以购买Ai件(也可以不购买),每购买一件会花费Ci元,并能产生Vi的价值。
请算出你能买的物品的最大价值和。
【输入】第一行,两个整数M,N用空格隔开。
后面N行,每行三个整数用空格隔开Ai、Ci、Vi【输出】一个整数,能买的物品的最大价值和【输入输出样例】【输入输出样例说明】购买第二种物品1件,第三中物品2件。
vara: array[1..100, 1..3] of longint;m, n: longint;i, j, k, ans: longint;f: array[0..10000] of longint;function max(a, b: longint): longint;beginif a > b thenexit(a)exit(b);end;function min(a, b: longint): longint;beginif a < b thenexit(a)elseexit(b);end;beginAssign(input, 'prepare.in');Assign(output, 'prepare.out');reset(input);rewrite(output);readln(m, n);for i := 1 to n doreadln(a[i, 1], a[i, 2], a[i, 3]);for i := 1 to n doif a[i, 1] * a[i, 2] > m thenfor j := a[i, 2] to m dof[j] := max(f[j], a[i, 3] + f[j - a[i, 2]])begink := 1;while k < a[i, 1] dobeginfor j := m downto k * a[i, 2] dof[j] := max(f[j], k * a[i, 3] + f[j - k * a[i, 2]]);a[i, 1] := a[i, 1] - k;k := k shl 1;end;for j := m downto a[i, 1] * a[i, 2] dof[j] := max(f[j], a[i, 1] * a[i, 3] + f[j - a[i, 1] * a[i, 2]]); end;writeln(f[m]);Close(input);Close(output);end.输入 100 51 30 62 20 53 40 74 35 45 50 8 输出 19输入 300 62 120 153 150 124 100 165 110 96 90 14 输出 48【问题描述】给定一个数列{an},这个数列满足ai≠aj(i≠j),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换?【输入文件】第一行,正整数n (n<=100,000)。
以下若干行,一共n个数,用空格分隔开,表示数列{an},任意-231<ai<231。
【输出文件】只有一行,包含一个数,表示最少的交换次数。
【样例输入】88 23 4 16 77 -5 53 100【样例输出】5将序列排序找出所有的循环,即错误位置调换的循环如 2 4 1 3 循环为2->4->3->1->2 Ans=sigma 循环长度-1参考程序:vara,b:array[0..1000000]of longint;n,i,j,tot,t,ans:longint;use:array[0..1000000]of boolean; procedure qsort(l,r:longint);vari,j,x,t:longint;begini:=l; j:=r; x:=a[random(r-l+1)+l];repeatwhile a[i]<x do inc(i);while a[j]>x do dec(j);if i<=j thenbegint:=a[i]; a[i]:=a[j]; a[j]:=t;t:=b[i]; b[i]:=b[j]; b[j]:=t;inc(i);dec(j);end;until i>j;if i<r then qsort(i,r);if l<j then qsort(l,j);end;beginassign(input,'seqsort.in');reset(input);readln(n);for i:=1 to n dobeginread(a[i]);b[i]:=i;end;close(input);qsort(1,n);for i:=1 to n doa[i]:=i;for i:=1 to n doif not use[i] thenbegint:=i;tot:=0;while not use[t] dobeginuse[t]:=true;inc(tot);t:=b[t];end;ans:=ans+tot-1;end;assign(output,'seqsort.out');rewrite(output);writeln(ans);close(output);end.输入1518 25 -30 76 125 67 45 -72 186 100 29 14 88 77 127 输出13输入2425 18 30 60 200 -104 -32 90 88 64 187 45 36 62 78 94 13 33 24 -56 82 140 189 71 输出18【问题描述】Matrix67要在下个月交给老师n篇论文,论文的内容可以从m个课题中选择。
由于课题数有限,Matrix67不得不重复选择一些课题。
完成不同课题的论文所花的时间不同。
具体地说,对于某个课题i,若Matrix67计划一共写x篇论文,则完成该课题的论文总共需要花费Ai*x^Bi个单位时间(系数Ai和指数Bi均为正整数)。
给定与每一个课题相对应的Ai和Bi的值,请帮助Matrix67计算出如何选择论文的课题使得他可以花费最少的时间完成这n篇论文。
【输入文件】第一行有两个用空格隔开的正整数n和m,分别代表需要完成的论文数和可供选择的课题数。
以下m行每行有两个用空格隔开的正整数。
其中,第i行的两个数分别代表与第i个课题相对应的时间系数Ai和指数Bi。
【输出文件】输出完成n篇论文所需要耗费的最少时间。
【样例输入】10 32 11 22 1【样例输出】19【样例说明】4篇论文选择课题一,5篇论文选择课题三,剩下一篇论文选择课题二,总耗时为2*4^1+1*1^2+2*5^1=8+1+10=19。
可以证明,不存在更优的方案使耗时小于19。
【数据规模与约定】对于30%的数据,n<=10,m<=5;对于100%的数据,n<=200,m<=20,Ai<=100,Bi<=5。
var a,b,i,j,k,n,m:integer;c:array[1..20,1..200] of int64; {预处理数组}f:array[0..200] of int64;beginassign(input,'mat.in');assign(output,'mat.out');reset(input);rewrite(output);readln(n,m);for k:=1 to m do beginreadln(a,b);for i:=1 to n do beginc[k,i]:=a;for j:=1 to b doc[k,i]:=c[k,i]*i;end;end;f[0]:=0;for i:=1 to n dof[i]:=100000000000000000;for k:=1 to m dofor i:=n-1 downto 0 dofor j:=1 to n-i doif f[i]+c[k,j]<f[i+j] then {DP核心动态转移方程} f[i+j]:=f[i]+c[k,j];writeln(f[n]);close(input);close(output);end.输入20 52 11 22 12 11 2 输出 38输入 16 72 33 13 22 12 33 21 3 输出 31。