全国青少年信息学奥林匹克联赛(NOIP)

赛事概况

赛事简介

全国青少年信息学奥林匹克联赛由中国计算机学会统一组织,是一项面向全国青少年的信息学竞赛和普及活动,旨在向那些在中学阶段学习的青少年普及计算机科学知识;给学校的信息技术教育课程提供动力和新的思路;给那些有才华的学生提供相互交流和学习的机会;通过竞赛和相关的活动培养和选拔优秀的计算机人才。NOIP 在同一时间、不同地点以各省市为单位由特派员组织。全国统一大纲、统一试卷。
官网:http://rg.noi.cn

竞赛内容

· 形式:联赛采用全国统一试卷命题及评分标准,统一竞赛时间,分初赛、复赛两个阶段。 · 初赛考试内容,少量的计算机基础知识;少量的算法概念;大量的偏数学的计算机题目;大量的程序阅读、完型填空;考试形式为笔试或者机试。 · 复赛为程序设计竞赛。参加初赛并符合复赛标准的选手方可参加复赛。 · 分组:分为普及组和提高组。普及组接收小学生和中学生及中等专业学校学生报名;提高组接收中学生及中等专业学校学生报名。 · 时间:初赛:每年 10 月中旬周六下午 复赛:每年 11 月中旬的一个星期六和星期日举行。提高组复赛两天,普及组复赛一天,可同时参加。 · 奖项:普及组,提高组分设一等奖,二等奖,三等奖

关键信息

· 符合清北等高校自主招生对于“学科特长”的要求。 · 提高组省级一等奖:清华英才班资格;清北竞赛营资格;双一流高校自主招生资格 · 提高组省级二等奖:清北寒假学堂;双一流高校学科夏令营资格;部分高校自主招生资格;省属高校综合评价资格 · 提高组省级三等奖:双一流高校夏令营资格;省属高校综合评价资格

参赛攻略

试卷详情

▷初赛:初赛形式为笔试,描述语言为C/C++或Pascal,时间为2小时,满分100分。 题型:(由4部分组成) · 选择题(共20题,每题1.5分,共计30分):提高组的前10道题为单选题,后10道题为不定项选择题(只有全部选对才得分,否则不得分);普及组的前20道题都是单选题。 · 问题求解题(共2题,每题5分,共计10分):试题给出一个叙述较为简单的问题,要求学生对问题进行分析,找到一个合适的算法,并推算出问题的解。考生给出的答案与标准答案相同,则得分;否则不得分。 · 程序阅读理解题(共4题,每题8分,共计32分):题目给出一段程序(不一定有关于程序功能的说明),考生通过阅读理解该段程序给出程序的输出。输出与标准答案一致,则得分;否则不得分。 · 程序完善题(共2题,共计28分):题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句或语句的一部分并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,填出被略去的语句。填对则得分;否则不得分。 ▷复赛:复赛形式为线上考试,描述语言为C/C++或Pascal。 普及组的复赛时间为3小时,共4道题,每题100分,共计400分; 提高组的复赛包括一试和二试,分两天进行。每次测试时间为3小时,有3道题,每题100分。选手的总分为两次测试的分数的总和,最高600分。 题型:编写程序(共 4道题) 每一试题包括:题目、问题描述、输入输出要求、样例数据(部分题目有样例的说明)。 测试时,测试程序为每道题提供了10-20组测试数据,考生程序每答对一组得5-10分,累计分即为该道题的得分。 NOIP的程序将在NOI Linux 1.4.1(Ubuntu系统)的环境下测评,G++编译器版本为4.8.4。

考试大纲

2021年4月,全国青少年信息学奥林匹克竞赛大纲在NOI官网发布。为方便大家的查阅和收藏,有道小图灵把大纲的入门级、提高级和NOI级全部整理了出来。 大家可以在【真题再现】模块进行下载查阅

考试注意事项

【对于初学者】 1. 文件输入输出 这部分是参数选手们出错最多的地方!因为和平时练习不一样。CSP复赛要求用文件输入输出,一定要确保提交文件中freopen()文件读写没有被注释掉,再具体点,就是 一定要记住两句话:freopen(“xxxx.in”,“r”,stdin) ; freopen(“xxxx.out”,“w”,stdout) ; 注:xxxx是每道题的英文名字。 2. 注意“四名” 文件夹名、程序文件名、输入文件名、输出文件名。 每道题这部分的英文名称都是一样的,都是小写,一定要多检查几遍! 3. 输出格式和大小写问题 比如,注意题目要求每个输出结果在同一行,还是在不同行。 或者输出yes no right impossible等英文提示时,是否要求首字母大写,大小写在Linux下面是不一样的。 4. 注意存盘,不要关机 为了防止突发事件,至少20分钟存盘一次 。千万不要关机,否则程序会丢失。 5. 头文件 最常用的头文件,一般写代码时先都把这几个写上去:<iostream>、<cstdio>、<cmath>、<cstring>、<cstdlib> 较常用的头文件:<algorithm>、<vector>、<queue>、<string> 头文件太多时,容易忘写using namespace std;但是用了using namespace std;之后容易产生的问题是:自己的变量名和std命名空间的变量名冲突,而且在Windows下 编译器不报错,在Linux下报错。所以自己的变量名不要使用hash、x0、x1、y0、y1,time、next、pipe等。如果需要这几个单词,可以用Time、Next等第一个字母大写 或者加上一些字母,如mytime、mynext等,或者定义成局部变量。当然,time、next、pipe等作为结构体的成员名是没问题的。 6. 变量初始化 变量在使用之前忘了初始化,里面的值是随机的,结果就会出问题,所以使用的时候不要忘记初始化,可以定义成全局变量,系统会自动初始化。 7. 数据类型 注意数据类型,输入输出的时候占位符和数据类型要一致,不一致在有时候可能结果也没有错误,但是评测的时候可能就有问题,比如long long的数据类型不能用 “%d”,而应该用“%lld”。 8. 不要使用gets函数 由于gets函数会造成安全隐患,在C++中已经被弃用,所以注意不要使用gets函数。可以使用:fgets\getchar\scanf\std::cin或其他读入方式。 9. 数组 C++里数组有时候可能会出现莫名其妙的问题,所以一定要记得把数组开大点,并且赋初值。最好是开成全局变量,因为在main函数里定义的是局部变量,给你的空间会 比较小,二维数组很容易就爆了。 【对水平比较高的选手们的建议】 10. STL STL主要是依靠各种容器和函数来实现各种功能,但是STL有些不是很常用,比如队列和栈,手写很方便,而且快一些,主要就用堆(priority_queue)、字符串 (string)和动态数组(vector)。 11. 指针 指针一般竞赛选手用得比较少,因为太容易出错了,一般选手会开个数组用下标i做指针,比较方便。 12. 时间空间资源和精度 1000毫秒内最大循环次数不要超过10^8(10^8有点悬,10^7绝对不超时)。空间限制在128MB时,数组元素类型为int时,元素个数最多千万级别(约3*10^7),要定 义在到main函数外面的全局变量区(二维数组的两个维度大小要相乘)。 13. 数据范围 有的题目,多个数相加,每个数的最大值就到了1e9,那么存放和的变量就必须是long long 。有的题目,边权的最大值都到了1e9,并且更新最短路径时两个边权相加, 结果就是2e9,那么我们在为数组元素赋值为无穷大时,应该设多少呢?我们的无穷大可以是1e9+1,或者0x3f3f3f3f=十进制1061109567, 0x7f7f7f7f=十进制 2139062143,int 的范围是-2147483648 ~ 2147483647。所以程序中的无穷大可以定义为1e9+1或0x3f3f3f3f 。 14. 建立图的邻接矩阵和邻接表时,注意单向边和双向边,重边,自环等情况。

真题再现

近10年CSP/NOIP真题及解析免费下载,线上真题再现赛等你来战!

赛后估分

独家评价分,输入考号秒出!
赛后估分流程

比赛落下帷幕,大家一定急迫地想知道自己成绩,估分服务继续奉上!
网易有道小图灵信息学团队在去年的基础上,进一步提高成绩预测的精准度,同时增加选手的省排名和全国排名预测,平均分,题目具体测试点详情,以及分数段和高分段 分布等情况,在今年的NOIP考试中,我们会有更加精准详细的估分方案以及根据估分结果得出的学习规划!