NOIP
NOIP是全国青少年信息学奥林匹克联赛,主要是是省级比赛。每年的10月初赛,11月复赛,通常都是提前两三年准备。是所有中学参赛者首先会接触到的比赛,也是后面比赛的基础。
联赛分普及组和提高组两个组别,难度不同,分别面向初中和高中阶段的学生。
学什么
参加NOIP,首先要学的是C++,因为参加比赛时程序都是用C++编写的。这里的C++基本只涉及C语言和STL,而C++特有的类、模板等内容很少涉及。
当然C++只是基础,信息学竞赛的核心是算法和数据结构,需要选手分析问题,并通过算法和数据结构大大提升程序效率,这也是信息学竞赛的魅力所在。
如果是小学开始,一般建议增加一部分:即编程入门,目的是培养孩子学习编程的兴趣和信心,至于学习时间要视孩子的具体情况而定。
C++
目前NOIP可以使用C、C++和Pascal三种编程语言,而2022年以后,NOIP比赛C和Pascal语言将不再可用,只剩下C++了。
有什么用
- 如果NOIP成绩好,对于入选省队并参加NOI会有一定的帮助。同时,NOIP系列比赛和ACM系列比赛的题型和内容类似,准备NOIP比赛对后续的国家级和国际级大赛也很有帮助。
- NOIP取得好的成绩对参加名校的自主招生有一定的帮助。进入国家集训队的,可以直接保送清华北大。其他获奖选手可通过夏令营、冬令营、科学营、体验营等各种自主招生渠道争取到降20-60分甚至本一线的录取优惠。
备赛技巧
入门阶段
语言基础方面,首先要学习C++,但并不需要面向对象的知识,基本上是C和STL,C的部分可以看《啊哈!C语言》,C++和STL的部分可以看《算法竞赛入门经典(第2版)》的语言篇。
进阶阶段
对于有进阶需求的同学,建议大家可以详细看一下《算法竞赛入门经典(第2版)》以及《算法竞赛入门经典(训练指南)》,并尽量完成上面的练习题。
测试结果
- WA:wrong answer 错误的答案
- AC:Accepted 答案正确;通过
- TLE:Time Limit Exceed 超时
- OLE:Output Limit Exceed 超过输出限制
- MLE:Memory Limit Exceed 超内存
- RE:Runtime Error 运行时错误
- PE:Presentation Error 格式错误
- CE:Compile Error 无法编译
初赛
初赛的考察内容的一部分是计算机的基础知识,比如进制转换,工作原理,算法原理、历史事件名人等。这些对于大部分第一次参加NOIP的同学来说应该比较陌生,这样的知识只能通过平时的积累,从现在就开始搜索资料,有意识的去记忆。
另一部分是数学内容,包括排列、组合等大概高中的数学知识,需要下载资料去研习,背公式。
最后一部分是程序完成。如果说前面2部分还有补习的希望,最后这一部分完全是靠你的做题基础,没有捷径,只能靠你平时多做题,对部分简单算法有些了解。
初赛形式为笔试,描述语言为C/C++或Pascal。各省市初试成绩在本赛区前百分之十五的学生进入复赛,其分数不计入复赛的成绩。初赛时间为10月的第三个星期六下午2:30 - 4:30举行。
1、选择题
共20题,每题1.5分,共30分。每题有4个备选答案。试题内容包括计算机基本组成与原理、计算机基本操作、信息科技与人类社会发展的关系等等。(普及组为20道单选题,提高组为10道单选题和10道不定项选择题,不定项选择题与答案完全一致才得分,多选或少选均不得分)
2、问题求解题
共2题,每题5分,共10分。试题给出一个叙述较为简单的问题,要求学生对问题进行分析,找到一个合适的算法,并推算出问题的解。答案以字符串方式给出,考生给出的答案与标准答案的字符串相同,则得分;否则不得分。
3、程序阅读理解题
共4题,每题8分,共32分。题目给出一段程序(没有关于程序功能的说明),有时也会给出程序的输入,要求考生通过阅读理解该段程序给出程序的输出。输出以字符串的形式给出,如果与标准答案一致,则得分;否则不得分。
4、程序完善题
共2题,第一题10分,共4空,每空2.5分;第二题18分,共6空,每空3分。两题共28分。题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,填出被略去的语句。填对的,则得分;否则不得分。
复赛
任何蒟蒻必须经过大量的刷题练习才能成为大牛乃至于神牛。
算法:数学递推、回溯、贪心、分治、搜索、动态规划、树、图论等。
NOI
NOI是全国青少年信息学奥林匹克竞赛,是面向中学生的全国性质的编程最高级别比赛。
IOI
IOI是国际信息学奥林匹克竞赛,是面向全世界中学生的一年一度的信息学学科竞赛,每个国家最多可选派4名选手参加。
ACM
ACM主要是指ACM-ICPC,即国际大学生程序设计竞赛,包括全球总决赛和各大洲的区域赛。