什么是NOIPNOIP是指全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces简称NOIP)。每年由中
国计算机学会统一组织。NOIP是在同一时间、不同地点以各省市为单位由特派员组织。每年的9月1—10日报名,初赛定于每年10月的第二个星期六下午,复赛定于每年11月的最后第二个星期六举行。全国统一大纲、统一试卷。初、高中或其他中等专业学校的学生可报名参加联赛。联赛分初赛和复赛两个阶段。初赛以通用和实用的计算机知识为考试内容,重在考察基础与实用的知识,以笔试为主。复赛为程序设计。参加初赛者须达到一定分数线后才有资格参加复赛。各省市、自治区都应参加联赛,参加联赛是参加NOI的必要条件。
高考加分和保送NOIP的每个省的一等奖具有参加保送或高考加分20分的资格。
(注:有些省份的NOIP一等奖有进入省队的资格,而省队的学生可以参加NOI。NOI有更高的保送资格。)
联赛命题宗旨全国青少年信息学奥林匹克联赛(NOIP)是一项面向全国青少年的信息学竞赛和普及活动,旨在向那些在中学阶段学习的青少年普及计算机科学知识;给学校的信息技术教育课程提供动力和新的思路;给那些有才华的学生提供相互交流和学习的机会;通过竞赛和相关的活动培养和选拔优秀的计算机人才。
竞赛的目的是为了在更高层次上推动普及。本竞赛及其相关活动遵循开放性原则,任何有条件和有兴趣的学校和个人,都可以在业余时间自愿参加。本活动不和现行的学校教学相冲突,也不列入教学计划,是课外性质的因材施教活动。参加者可为初高中学生或其他中等专业学校的青少年。
普及的内容.计算机的基本组成;
. 计算机操作系统使用(windows等);
.计算机工作的基本原理;
.计算机程序设计的基本方法;
.至少一门高级程序设计语言;
.程序设计中常用的数据结构。
普及的重点是根据中学生的特点,培养学生学习计算机的兴趣,使得他们对信息技术的一些本质和核心的东西有更多的了解,提高他们创造性地运用程序设计知识解决实际问题的能力。
对学生的能力培养注重
.想象力与创造力;
.对问题的理解和分析能力;
.数学能力和逻辑思维能力;
.对客观问题和主观思维的口头和书面表达能力;
.人文精神。包括与人的沟通和理解能力,团队精神与合作能力,恒心和毅力,审美能力等。
竞赛形式和成绩评定联赛分两个年龄组:初中组和高中组。每组竞赛分两轮:初试和复试。
.初试形式为笔试,侧重考察学生的计算机基础知识和编程的基本能力,并对知识面的广度进行测试。程序设计的描述语言采用Basic(2005年被取消)、C/C++或Pascal。各省市初试成绩在本赛区前百分之十五的学生进入复赛,其分数不计入复赛的成绩。初赛时间为10月的最后第二个星期六下午 2:30 - 16:30举行。
.复试形式为上机,侧重考察学生对问题的分析理解能力,数学抽象能力,驾驭编程语言的能力和编程技巧、想象力和创造性等。程序设计语言可采用Basic(2005年后被取消)、Pascal、C或C++。各省市竞赛的等第奖在复试的优胜者中产生。时间为 3小时。只进行一试,约在当年的11 月的第三个周六进行。
试题形式
每次联赛的试题分四组:初中组初试赛题;初中组复试赛题;高中组初试赛题;高中组复试赛题。其中,初中组初试赛题和高中组初试赛题类型相同,初中组复试赛题和高中组复试赛题类型相同,但初中组和高中组的题目不完全相同,高中组难度略高;以体现年龄特点和层次要求。
* 初试:初试全部为笔试,满分100分。试题由四部分组成:
1、选择题:共20题,每题1.5分,共30分。每题有4个备选方案。试题内容包括计算机基本组成与原理、计算机基本操作、信息科技与人类社会发展的关系等等。
2、问题求解题:共2题,每题5分,共10分。试题给出一个叙述较为简单的问题,要求学生对问题进行分析,找到一个合适的算法,并推算出问题的解。答案以字符串方式给出,考生给出的答案与标准答案的字符串相同,则得分;否则不得分。
3、程序阅读理解题:共4题,每题8分,共32分。题目给出一段程序(没有关于程序功能的说明),有时也会给出程序的输入,要求考生通过阅读理解该段程序给出程序的输出。输出以字符串的形式给出,如果与标准答案一致,则得分;否则不得分。
4、程序完善题:共 2题,第一题10分,共4空,每空2.5分;第二题18分,共6空,每空3分。两题共28分。题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,填出被略去的语句。填对的,则得分;否则不得分。
(2009年普及组试题为第一题5空,每空3分,第二题前三空每空3分,后两空每空2分)
*复试:复试的题型和形式向全国信息学奥赛(NOI)靠拢,全部为上机编程题,但难度略低。复试为决出竞赛成绩的最后一个环节。题目包括 4道题,每题100分,共计400分。难度有易有难,既考虑普及面,又考虑选拔的梯度要求。每一道试题包括:题目、问题描述、样例说明(输入、输出及必要的说明)、数据范围(数据限制条件)。测试时,测试程序为每道题提供了十组测试数据,考生程序每答对一组得10 分;累计分即为该道题的得分。
试题的知识范围考试内容主要包括:计算机发展史、计算机组成、计算机基本原理、计算机程序设计、计算机日常应用等。要求考生掌握至少一门高级程序设计语言(详见竞赛大纲)。为了保持竞赛内容的相对连续性,试题涵盖的知识点和题型至少60%应出现在普及类的参考书目中,其余内容可能超出该范围。
为了考核学生的基础知识、综合应用能力,激发学生的求知欲和创新思维,体现“与时俱进”的特点,竞赛题型在保持大纲相对稳定、优秀学生可能接受和理解的基础上,按照下述趋势适当变化
1、增大与课内知识结合的紧密度;
2、增大解题方法的多样性和灵活程度;
3、增大开放性试题的比例。
试题的知识范围具体如下:
一.初赛内容与要求:
A.计算机的基本常识:
1.计算机和信息社会(信息社会的主要特征、计算机的主要特征、数字通信网络的主要特征、数字化)
2.信息输入输出基本原理(信息交换环境、文字图形多媒体信息的输入输出方式)
3.信息的表示与处理(信息编码、微处理部件MPU、内存储结构、指令,程序,和存储程序原理、程序的三种基本控制结构)
4.信息的存储、组织与管理(存储介质、存储器结构、文件管理、数据库管理)
5.信息系统组成及互连网的基本知识(计算机构成原理、槽和端口的部件间可扩展互连方式、层次式的互连结构、互联网络、TCP/IP协议、HTTP协议、WEB应用的主要方式和特点)
6.人机交互界面的基本概念(窗口系统、人和计算机交流信息的途径(文本及交互操作))
7.信息技术的新发展、新特点、新应用等。
B.计算机的基本操作:
1. Windows和LINUX的基本操作知识
2. 互联网的基本使用常识 (网上浏览、搜索和查询等)
3. 常用的工具软件使用(文字编辑、电子邮件收发等)
C.数据结构:
1.程序语言中基本数据类型(字符、整数、长整数、浮点)
2. 浮点运算中的精度和数值比较
3.一维数组(串)与线性表
4.记录类型(PASCAL)/ 结构类型(C)
D.程序设计:
1.结构化程序设计的基本概念
2.阅读理解程序的基本能力
3.具有将简单问题抽象成适合计算机解决的模型的基本能力
4.具有针对模型设计简单算法的基本能力
5.程序流程描述(自然语言/伪码/NS图/其他)
6.程序设计语言(PASCAL/C/C++,2003仍允许BASIC)
E.基本算法处理:
1.初等算法(计数、统计、数学运算等)
2.排序算法(冒泡法、插入排序、合并排序、快速排序)
3.查找(顺序查找、二分法)
4.回溯算法
二、复赛内容与要求:
在初赛的内容上增加以下内容:
A.数据结构:
1.指针类型
2.多维数组
3.单链表及循环链表
4.二叉树
5.文件操作(从文本文件中读入数据,并输出到文本文件中)
B.程序设计
1.算法的实现能力
2.程序调试基本能力
3.设计测试数据的基本能力
4.程序的时间复杂度和空间复杂度的估计
C.算法处理
1.离散数学知识的应用(如排列组合、简单图论、数理逻辑)
2.分治思想
3.模拟法
4.贪心法
5.简单搜索算法(深度优先 广度优先)搜索中的剪枝
6.动态规划的思想及基本算法
评测环境
NOIP2005比赛环境规范依照兼顾Windows、Linux平台、统一编译器、提供多种集成开发环境选择的原则制定。
NOIP2005的比赛环境中,操作系统平台可依各地的实际情况选择Windows或者Linux;在固定的操作系统平台下,对应不同的语言,使用统一的编译器,消除编译器不同给选手带来的不利影响;对应每种语言,提供了多种集成开发环境,选手可以根据自己的习惯选择集成开发环境。
在全国评测时,评测环境保持与比赛环境的操作系统及编译器一致。也就是说全国评测时,使用与选手比赛时一致的平台对选手的程序进行评测,以消除平台不一致带来的不利影响。
以下是NOIP2005比赛环境要求的详细描述:
1、使用Windows操作系统平台:
(1)Windows操作系统必须使用Windows 2000、Windows XP及更新的Windows版本;
(2)Pascal语言,必须使用Free Pascal 1.0.10及以上版本作为编译器;
(3)C语言,必须使用gcc 3.4.2作为编译器;
(4)C++语言,必须使用g++ 3.4.2作为编译器;
(5)Pascal语言,可以使用Freepascal IDE Windows版、Lazarus Windows版、Dev-Pascal作为集成开发环境,推荐使用Lazarus Windows版;
(6)C和C++语言,可以使用Dev-C++、RHIDE Windows版作为集成开发环境,推荐使用Dev-C++;
2、使用Linux操作系统平台:
(1)Linux操作系统必须使用NOI linux,基于ubuntu开发;
(2)Pascal语言,必须使用Free Pascal 1.0.10及以上版本作为编译器;
(3)C语言,必须使用gcc 3.2.2作为编译器;
(4)C++语言,必须使用g++ 3.2.2作为编译器;
(5)Pascal语言,可以使用Lazarus Linux版、RHIDE Linux版作为集成开发环境,推荐使用Lazarus Linux版;
(6)C和C++语言,可以使用RHIDE Linux版、KDevelop、Anjuta作为集成开发环境,推荐使用Anjuta。