Sweetlemon
2020-08-01 21:53:30
这篇文章主要包含 NOI 笔试题库的一些解释和延伸,也会包含一些口诀、闲话来辅助记忆。由于笔者水平有限,所以文章中可能存在不少问题,敬请指正。
文章中首先包含了笔试题库 2020 版相比 2019 版的一些变化,方便已经学习过 2019 版笔试题库的选手复习;接下来是 2020 版全部题目的解释。
对比版本:NOI 2019 笔试题库
概述:2020 版笔试题库相比 2019 版,在一些问题的表述上有了改进;且由于 2020 年起 NOI 不再支持 C 和 Pascal,笔试题库中关于 C 和 Pascal 的内容已经在 2020 年 8 月 2 日更新后被全部删除。总的来说,题目和答案没有大的改动。
粗体:增加内容
删除线:删除内容
Linux 系统中编译 C 程序的编译器是:gcc
Linux 系统中编译 Pascal 程序的编译器是:fpc
18 . 使用 gcc g++ 编译 C C++ 程序时,生成调试信息的命令行选项是:-g
19 . 使用 gcc g++ 编译 C C++ 程序时,生成所有警告信息的命令行选项是:-Wall
20 . 使用 gcc g++ 编译 C C++ 程序时,只编译生成目标文件的命令行选项是:-c
21 . 使用 gcc g++ 编译 C C++ 程序时,指定输出文件名的命令行选项是:-o
22 . 如果 C C++ 程序中使用了 math.h 中的函数,在用 g++ 编译时需要加入选项:-lm
29 . 在终端中运行自己的程序,如果进入死循环,应当如何终止:Ctrl-C
32 . 使用 Reset 键 主机“重启”键强行重新启动计算机,可能会对系统造成的后果是:文件系统损坏
34 . 当前目录中有如下文件:
-rw-r--r-- 1 user None 8.7K Jul 2 16:35 foobar
-rw-r--r-- 1 user None 93 Jul 2 16:35 foobar.c++
-rwx------ 1 user None 144 Jul 2 16:35 foobar.sh
其中,可以执行的文件是:foobar.sh
(注:原 foobar.c
改为 foobar.c++
)
41 . 为 程序 源代码文件 my.c my.cpp 创建一个备份 myc.bak mycpp.bak 时,使用的命令是:cp my.c myc.bak
cp my.cpp mycpp.bak
Pascal 中 integer 和 long integer 类型的长度和编译选项是否有关系:有关系
47 . NOI 考试对 C++ 语言 模板 标准模板库的使用有限制吗?没有
48 . NOI 考试对 PASCAL C++ 语言的使用有限制吗?有
在NOI考试中,Pascal 源文件的扩展名规定为:pas
在NOI考试中,C源文件的扩展名规定为:c
78 . 选手可以不使用集成开发环境(IDE)编辑程序源代码吗?可以
81 . 在 NOI 上机考试中,允许选手使用的编程语言包括:C、C++、Pascal C++
86 . 没有自行复测结果(包括结果正确性、所用时间、所用空间等)支持的申诉是否会被受理:否
23 . 将十六进制数(AB) 0xAB 表示成二进制数是:10101011
NOI 比赛中提供的 Pascal IDE 环境除了 GUIDE 之外,还有 Lazarus。
27 . 在 NOI 比赛中,提供的编程工具 编辑源代码除了可以用 GUIDE、Lazarus、Anjuta 等集成开发环境 (IDE)之外,还可以使用:Vi、Gedit vi、gedit
NOI 机试使用的操作系统是:Linux
我们都知道,NOI Linux 实际上是 Ubuntu 14.04 的修(yan)改(ge)版。
Linux 中为文件改名使用的命令是:mv <旧文件名> <新文件名>
把旧的移到新的,move ... (to) ...
在 Linux 中返回上一级目录使用的命令是: cd ..
一个点是当前目录,两个点是上一级目录
在 Linux 中删除当前目录下的 test
目录的命令是: rm -r test
还记得 rm -rf /
吗?其中 -r
是删除目录及其文件,-f
是强制执行。
当前目录下有一个编译好的可执行文件 a.out
, 执行它使用的命令是: ./a.out
.
是当前目录。如果不指定 ./
,Linux 会在默认搜索目录下搜索,则找不到当前目录下的程序。
使用高级语言编写的程序称之为: 源程序
WC 2019 有个集体舞叫“源代码”
在 NOI Linux 系统中可以用来调试程序的程序是:gdb
这句话有一点绕,不过问题不大;这里是一篇 gdb 的教程。
在 Linux 系统中, 文件夹中的文件可以与该文件夹同名吗: 可以
显然可以,Windows 下也可以
Linux 系统中杀死名为 test
的后台进程的命令是: killall test
注意,kill
命令是在已知 pid
的情况下才能使用的,只知道进程名字的时候要用 killall
。
Linux 系统中可以查看隐藏文件的命令是: ls -a
ls
命令在 Linux 下可以查看文件信息(通常是打印当前目录下文件的信息)。-a
选项可以把隐藏文件的信息也打印出来,可以理解为list all
。
Linux 系统中编译 C++ 程序的编译器是:g++
这道题一定看清问的是“编译器”还是“扩展名”!
Linux 系统中, 将当前目录下的文件名打印到 tmp
文件中的命令是: ls >tmp
使用输出重定向,>
形象地把输出导到右边的文件。
Linux 系统中, 测量当前目录下程序 test
运行时间的命令是: time ./test
非常常用的命令,可以用来测量自己程序的运行时间。
vim 编辑器中, 强制退出不保存修改应当输入: :q!
注意冒号是 vim 命令的一部分。单纯输入 :q
会提示“已修改但未保存,可加 ! 强制执行”
vim 编辑器中, 强制退出并保存修改可输入以下三种命令之一: :wq
、 ZZ
、 :x
这三个指令可以稍微记忆一下。:wq
是先 :w
(write)再 :q
(quit),ZZ
是快捷键不用冒号(注意要大写),:x
可以认为是 wq
的缩写。或者随便用一个首字母缩写记忆一下,比如“为群主照相”(逃
还有一个笑话,和一个惯用 vim 的同事 QQ 聊天,对面说先去赶个代码,然后突然发过来一个 :wq
。
vim 编辑器中, 定位到文件中第 12 行应当输入: :12
vim 编辑器中, 在文件中查找字符串“12” 应当输入: /12
这两个要加以区分,冒号是定位到行数,斜杠是查找。可以联想到 Javascript 中的正则表达式是用斜杠括起的。
使用 g++ 编译 C++ 程序时, 生成调试信息的命令行选项是: -g
可以联想“gdb”是调试器,“gdb”的第一个字母是“g”。
使用 g++ 编译 C++ 程序时, 生成所有警告信息的命令行选项是: -Wall
Warning All。注意大小写,例如小写的 -w
是关闭所有警告。
使用 g++ 编译 C++ 程序时, 只编译生成目标文件的命令行选项是: -c
“目标文件”是可执行文件的前体,是链接器(ld)处理的对象。
源代码转化为可执行文件有两个过程——编译和链接,分别需要的“酶”是编译器和链接器,“前体”分别是源代码和目标文件,“产物”分别是目标文件和可执行文件。因此 -c
可以理解为“只编译(Compile),不链接”。此外,只预处理、不编译的选项是 -E
。
使用 g++ 编译 C++ 程序时, 指定输出文件名的命令行选项是: -o
联想“output”。
如果 C++ 程序中使用了 math.h
中的函数, 在用 gcc 编译时需要加入选项: -lm
这个选项是交给链接器的,让链接器“Link Math”。
Linux 系统中具有最高权限的用户是: root
root 用户拥有“根”本权限。
在 Linux 的各个虚拟控制台间切换的快捷键是: Ctrl+Alt+Fn
注意这道题答案指的是 Ctrl+Alt+F1
, Ctrl+Alt+F2
, ... , Ctrl+Alt+F6
这 6 个快捷键。
Linux 有 6 个虚拟控制台,打开后就进入了漆黑的世界(雾)。要知道怎么回来?请听下题分解。
在 NOI Linux 中, 从字符控制台切换回桌面环境使用的快捷键是:Ctrl+Alt+F7
可以理解为 6 个虚拟控制台分别编号为 1, 2, 3, 4, 5, 6,那么桌面环境就编号为 7 。
另外,这道题一定记清楚了,如果考试时不慎进入了虚拟控制台,难道还要求助监考老师切回来么(大雾)。
在 NOI Linux 中默认使用的 Shell 是:bash
全称为“Bourne Again SHell”。可以去了解一下历史。
当然,bash 这个单词的意思是:bash v. 猛击; 猛撞; 严厉批评; n. 猛击; 重击; 盛大的聚会; 盛典。
在 Linux 中查看当前系统中的进程使用的命令是:ps
在 Linux 中查看进程的 CPU 利用率使用的命令是:ps
ps
命令可以打印很多关于进程的信息,ps 是 Process Status 的缩写。
在终端中运行自己的程序,如果进入死循环, 应当如何终止: Ctrl-C
用多了就习惯了,在终端里 Ctrl-C
不是复制!
可执行文件 a.out
从标准输入读取数据。 现有一组输入数据保存在 1.in
中, 使用这个测试数据文件测试自己的程序的命令是: ./a.out <1.in
可执行文件 prog_1
输出运行结果到标准输出。则将输出结果保存到文件 1.out
中使用的命令是: ./prog_1 >1.out
看清楚是“输入”还是“输出”!这两题都是输入输出重定向的例子,<
和 >
可以形象记忆。
使用主机“重启”键强行重新启动计算机可能会对系统造成的后果是:文件系统损坏
当前可能正在写文件,直接重启可能造成文件系统损坏。另外可能大家会有强拔 U 盘造成 U 盘文件损坏的经验……
在 Linux 系统中, 用于查看文件的大小的命令是: ls -l
选项 -l
可以联想 long(这样打印出来的信息较长)或 large(包含文件“大”小)。
当前目录中有如下文件
-rw-r--r-- 1 user None 8.7K Jul 2 16:35 foobar
-rw-r--r-- 1 user None 93 Jul 2 16:35 foobar.c++
-rwx------ 1 user None 144 Jul 2 16:35 foobar.sh
其中, 可以执行的文件是: foobar.sh
此题关键不是看扩展名,而是看上面列出的“rwx”这一串,带有“x”的就是可执行文件。联系 chmod +x foobar.sh
。关于文件权限,可以阅读这篇资料。
评测系统中对程序源文件大小的限制是:小于 100KB
注意这是对“程序源文件”的限制。关于提交答案题的答案文件,可以参考 NOI 竞赛规则(“选手提交的程序源文件必须不大于100KB。答案提交类题目的答案文件不得超过题目规定的大小;题目未规定大小的必须不大于100KB。”)。另外,是“小于”100KB(源自笔试题库)还是“不超过”100KB(源自 NOI 竞赛规则)是有争议的。
如无另行说明, 评测系统中对程序使用内存的限制是: 以硬件资源为限
每年题目摘要的内存限制都属于“另行说明”~
Linux 下的换行字符为:\n
这就是所谓的“LF”(Line Feed)了。另外,实际上 \r
(CR, Carriage Return)是回车,两者的名字不同。理解这两者需要用到打字机,CR 是让打字机头移到行开始,LF 是让打字机把纸往上移(相当于打字机头往下移)。
终止一个失去响应的进程( 代表进程号) 的命令是:
说到“pid”,就是 kill
命令了;如果是进程名,就是 killall
。
总结一下有关进程的命令。需要打印信息,就用 ps
;需要终止进程,就用 kill
(涉及 pid)或 killall
(涉及进程名)。
Linux 中是否区分文件和目录名称的大小写: 是
这点和 Windows 不一样,Windows 不区分文件和目录名的大小写。另外这就是提交代码时一定要用英文小写做文件和目录名的原因。
选手在 NOI 机试过程中是否禁止使用网络:是
看清题目,问的是“是否禁止”
为源代码文件 my.cpp
创建一个备份 mycpp.bak
时, 使用的命令是: cp my.cpp mycpp.bak
cp 是 copy,mv 是 move,都是旧的在前、新的在后。
调试程序的方法有: 单步调试、使用 print
类语句打印中间结果、阅读源代码
OI 是“单打独(读)斗”。另外,阅读源代码真的是很好的调试方法,找不出问题的时候可以静下心读一读。
在考试过程中,如果出现系统死机或崩溃现象,选手应当采取的措施是:举手示意监考人员处理
千万不能自己处理,自己处理的后果得自己承担。
提交的答案程序中如果包含 NOI 考试明确禁止使用的代码, 后果是: 本题成绩以 0 分计算
注意只影响本题成绩哦,并不会取消所有成绩。
对评测结果有疑义, 需要申请复评, 则: 提出书面申请, 并经领队、科学委员会主席签字确认后, 提交至评测人员
口诀“申请领主,签字提交”。
复评成绩较原始成绩有变化, 则: 以复评成绩为准
肯定以新的为准啊,要不然为什么要复评(大雾)。
NOI 考试对 C++ 语言标准模板库的使用有限制吗?没有
NOI 考试对 C++ 语言的使用有限制吗? 有
STL 当然是随便用,但是内嵌汇编、下划线开头的库函数或宏就不能用了……参考这条老规定。
名为 FILE
的文件和名为 File
的文件在 Linux 系统中被认为是: 不同的文件
目录 DIRECT
和目录 Direct
在 Linux 系统中被认为是: 不同的目录
上面提到过,文件名和目录名均区分大小写。
在 NOI 正式考试中如何登录自己的比赛用机: 使用考前工作人员下发的账户及密码
会发密码条(以前在笔试题库中明确指出,丢密码条要扣 5 分;现在这个内容被删掉了,但日程表里还是写着“丢失密码条扣分”)。
如果考试分多日进行, 那么选手的考试账户和口令: 由工作人员在每场考试开始前下发
NOIP 或 CSP 的密码条应该也是每日不同的(如果一张密码条用两场,不就更容易丢失密码条了吗)。
考试结束后, 应如何处理密码条: 保存好密码条,用于复测。
复测的时候要用密码条上的密码登录系统,查看测评结果。
选手答案文件保存的目录是:选手目录下和考题名称符合的目录
不同于 NOIP,这个目录似乎是不需要自己建的,在开考时这个目录下就有样例文件,最后只要把程序放进去就可以了。
按照去年的经验,在“选手目录”(用户的“家目录”,终端下的 ~
目录)下就有三个“和考题名称符合的目录”。
选手答案的文件名要求是:和试卷的题目摘要中所示文件名一致
注意是按照“试题摘要”,也就是试题的第一页。
选手答案的文件名大小写错误,成绩会怎样:0 分
到了 NOI 阶段,希望不要有选手犯这个错误了。
选手提交的源代码文件名是否有特殊要求:源程序文件名由试题名称缩写加后缀构成,试题名称缩写及后缀一律使用小写
记得是小写哒!三年 OI 一场空,名字打错见祖宗。
在 NOI 考试中,C++ 源文件的扩展名规定为:cpp
还是那句话,看清题目问的是扩展名还是编译器。
发现鼠标或其他硬件设备有问题,选手可以:请工作人员更换
毕竟我也不能带自己的进来嘛。
对试题理解有问题,选手可以:举手求助
这一点比较友好,在很多考试中考生是不能向监考员询问与试题内容有关的问题的。
考试结束后选手需要: 迅速离开
考试结束后,选手需要去吃饭。
复评结束后是否还能提交复评申请:不能
我今年申请复评去年的程序,如何?
测试点时间限制的含义是指: 题目允许程序运行所占用的用户时间总和的上限值。
注意是“用户时间”。实际上,在使用 time 命令时会得到 real, sys, user 三个时间,其中 user 指的就是用户时间。关于这三个时间的更多资料,可以阅读 这篇文章。
什么情况下选手可以申请延长考试时间:机器出现故障,并由工作人员确认和记录
一定要工作人员参与才行哦,自己记录并没人相信。
考试中选手自行重新启动机器,能否获得加时?不能
所以就不要自作主张啦(bushi
草稿纸用完了,如何处理:举手向监考人员求助
水喝完了,如何处理:举手向监考人员再要一瓶
yysy,监考人员真的很累,要处理如上这么多事情。
考试太简单, 能提前离开吗? 能
这题要记住!虽然和我们平常的考试经验不太一样就是了,平常的月考一类为了方便管理似乎常常不让提前离场。
离开考场后,发现还有个问题没改,能回去再改吗? 不能
你不是说考试太简单吗,为什么还要回去改啊(半恼)
考试中机器突然没响应了,如何处理?举手向监考人员求助
考试中发现登录名和密码的单子丢了,如何处理?向工作人员求助
复评的时候忘记登录名和密码了,如何处理?向工作人员求助
有困难,找工作人员!
在监考人员宣布 NOI 机试开始之前, 是否允许选手登录系统和翻阅试卷? 否
NOI 是不能提前登录系统的!桌上的纸质试题也不能动。
在 NOI 上机考试中,是否允许选手私自重新启动计算机?否
私自重启?要是电脑有还原,你就完了。
在 NOI 系列考试中,如果由于文件名不正确导致被判 0 分,提出复评请求,会被接受吗?不会
在 NOI 系列考试中,如果由于文件目录名不正确导致被判 0 分,提出复评请求,会被接受吗?不会
NOI 系列考试中,如果由于文件保存路径不正确导致被判 0 分,提出复评请求,会被接受吗?不会
写错文件名肯定会见祖宗啊,还怎么申诉。
选手可以不使用集成开发环境(IDE)编辑程序源代码吗? 可以
显然是可以的,比如使用 vim 或 Emacs。仍然是注意审题,问的是是否可以“不”使用(虽然这个地方看错影响不大)。
选手回答填空题, 提交的答案中可以包含引号吗? 不可以
请问你月考、段考、期考、学考、高考写填空题什么时候带过引号?
选手程序在某测试点上的运行时间仅比时限多 0.005 秒,算不算超时? 算
卡常力度不够大,悲。
在 NOI 上机考试中,允许选手使用的编程语言包括:C++
从 2020 年开始,NOI 不支持 C 和 Pascal 啦,所以这题只有 C++。
NOI 比赛的题目类型有: 非交互式程序题、交互式程序题、答案提交题
“非交互式程序题”不是“传统题”,“答案提交题”不是“提交答案题”,另外所谓的“通信题”也许不会出现,也许被归入了“交互式程序题”当中。(虽然这么出选项应该太毒瘤了)
选手比赛中提交的有效文件类型有:答案文件、源程序。
分别对应“答案提交题”和程序题。
选手提交的程序不得进行的操作包括: 试图访问网络、 使用 fork 或其它线程/进程生成函数、 打开或创建题目规定的输入/输出文件之外的其它文件、 运行其它程序。
“网线开其它”。注意这里的限制是针对选手提交上去的程序的,而不是针对选手的,也就是选手当然可以运行其他程序或打开其他文件。
以修改过的程序或答案为依据的申诉是否会被受理:否
求求你,我这个数组开小了,就让我改一下行么/kel
没有自行复测结果(包括结果正确性、所用时间、所用空间等)支持的申诉是否会被受理:否
今年的笔试题库明确了什么叫“有复测结果支持”,简单地说大概是要对工作人员说,“你看,在我的电脑上跑得没问题啊”,这就是“自行复测结果支持”;而不能直接空口无凭地说“啊,我要重测!”。
超过申诉时间的申诉是否会被受理:否
Day 2 考完后申诉 Day 1……
对评测结果中的超时有异议,且复测结果的运行时间与题目时间限制之差小于题目时间限制 5% 的申诉是否会被受理:否。
和上面那个超时 0.005 秒的一样惨啊。
遇到下列哪些情况可以向工作人员申请加时补偿:计算机硬件故障,操作系统死机。
软硬件故障都有机会加时。
考试时若遇到计算机硬件故障或操作系统死机,应如何处理?举手向工作人员求助
这个问题已经强调了很多遍了,也许之前有选手自行处理,结果处理出了问题,所以现在大力强调。
选手进入考场可以携带的物品是:笔、手表。
注意,手表是可以带的(虽然高考不可以)。
选手进入考场不可以携带的物品是:纸、U 盘、手机。
存储介质都不能带。
竞赛组织者将在竞赛场地为选手提供的物品是:草稿纸、饮用水、食品。
草稿纸用完了或水喝完了还可以向监考员再要,但食品好像不行(哭)。不过去年发的食品还挺多的,也许考场上吃不完。
一个完整的计算机系统应包括:硬件系统和软件系统。
只要提“软硬件”就完整了。回忆上面的第 89 题,考试时遇到软硬件故障都有机会加时。
目前微型计算机中采用的逻辑组件是:大规模和超大规模集成电路。
这是计算机发展第四阶段的特征。
软件与程序的区别是:软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序是软件的一部分。
听说过软件工程吧?那么听说过程序工程么?所以程序是软件的一部分(bushi
IT 表示:信息技术。
Information Technology
计算机中央处理器简称为 CPU。
Central Processing Unit
计算机内存储器的作用是:用来存放当前 CPU 正在使用的程序和数据。
注意是“程序和数据”;冯·诺依曼结构中,程序和数据存储在同一个存储器中。
用来全面管理计算机硬件和软件资源的软件叫:操作系统。
LAN 是指:局域网。
Local Area Network
在微机中,bit 的中文含义是:二进制位。
计算机所能辨认的最小信息单位是:位。
不是“字节”哒,毕竟有“位运算”可以直接操纵位嘛。
ASCII 的含义是:美国信息交换标准代码。
American Standard Code for Information Interchange
在计算机术语中经常用 RAM 表示:随机存取存储器。
Random Access Memory;另外 ROM 是只读存储器,Read-Only Memory。
RAM 存储器在断电后, 其中的数据 会 变化。
ROM 存储器在断电后, 其中的数据 不会 变化。
如上,要分清 RAM (Random Access Memory) 和 ROM (Read-Only Memory) 呢,只读存储器因为是只读的,理解为 const
,就不会变化。
现代计算机所应用的存储程序原理是 冯·诺依曼 提出的。
“冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。”(摘抄自某度百科,这句话同时解释了第 85 题)
计算机内所有的信息都是以二进制数码形式表示的。
计算机直接识别和执行的语言是:机器语言。
不是“汇编语言”,汇编语言相当于机器语言的助记符。
Linux 是一个开源的操作系统,意思是源码可以免费获得。
Linux 是 GPL 协议开源的,关于开源协议可以读一些类似这样的文章。
NOI 的中文意思是全国信息学奥林匹克竞赛。
“全国信息学奥林匹克禁赛”(竞赛警告)
另外从 2019 年开始,原来的“全国青少年信息学奥林匹克竞赛”中的“青少年”三个字被删除了。
字长为 32 bit 的计算机,表示它能作为一个整体进行传送的数据长度可为 4 个字节。
32 bit 就是 4 Byte。
一个字节由相邻的 8 个二进制位组成。
分析 bitset 的空间占用的时候应该用过吧。
二进制数“10”化为十进制数是 2 。
这是最简单的进制转换例子了。
将十六进制数 0xAB 表示成二进制数是 10101011。
这段其实可以直接背,不过 0xA 相当于十进制的 10,0xB 相当于十进制的 11,把 10 和 11 分别转换为二进制也可以。
Linux 中查看当前路径使用的命令是:pwd
“Print Working Directory”,打印工作目录。
在 Linux 下建立目录使用的命令是:mkdir
“MaKe DIRectory”。
NOI 比赛中提供的 C++ IDE 环境除了 GUIDE 之外, 还有 Anjuta。
虽然这两个似乎没人用?我 NOIP 2016 的时候用 Anjuta,结果居然闪退好多次,而且所做的更改会丢失(可怕)。
NOI 比赛中,编辑源代码除了可以用 GUIDE、Lazarus、Anjuta 等集成开发环境(IDE)之外,还可以使用 vi、gedit。
很奇怪这里为什么没有 Emacs?
NOI 比赛每场上机考试的比赛时间是 5 小时。
IOI 也是 5 小时,ACM 赛制也是 5 小时。
首届 NOI 是 1984 年举办的。
1984 年“计算机普及要从娃娃抓起”被提出,当年就有了 NOI。
今年是第几届 NOI? 第 37 届。
今年是第几届 IOI?第 32 届。
第 12 届 IOI 是 2000 年在 北京 举办的。
NOI 时,笔试是在试机阶段完成的,为机上测试,测试时会进入到在线答题系统中(和 NOI Online 的系统差不多)。至于在测试时能否在机上做实验,嗯,似乎没有明令禁止(bushi
根据说明,笔试一般为 45 道单选题和 5 道多选题,选项一般也不会特别刁钻,因此很多时候答案不需要完全背诵下来,只要熟悉一般就能选对。
评测鸭有一个 背笔试 可以在线练习。
LOJ 有两套 NOI 笔试的模拟题,分别是 「LibreOJ NOI Round #1」笔试 和 「LibreOJ NOI Round #2」笔试。
需要注意,这两个练习地址用的可能是旧题库,其中有些题目在 2020 年题库中已经删除,练习时请注意。
ouuan 提供了一个新的 背笔试程序,已校对 2020 年新版题库,可作为练习。
另外,UOJ 的 UOJ NOI Round 中有最新命制的 笔试测试,不过题目稍难,也可以作为模拟练习。
祝各位 NOI 选手在 NOI 中考试顺利,发挥出应有的水平;也祝还没能参加 NOI 的选手早日进入省队!
CCF NOI 2020 笔试题库
CCF NOI 2019 笔试题库