全國青少年信息學奧林匹克聯賽

面向全國青少年的信息學競賽和普及活動

全國青少年信息學奧林匹克聯賽(National Olympiad in Informatics in Provinces,簡稱NOIP)自1995年至2018年已舉辦24次。每年由中國計算機學會統一組織。 NOIP在同一時間、不同地點以各省市為單位由特派員組織。全國統一大綱、統一試卷。初、高中或其他中等專業學校的學生可報名參加聯賽。聯賽分初賽和複賽兩個階段。初賽考察通用和實用的計算機科學知識,以筆試形式進行。複賽為程序設計,須在計算機上調試完成。參加初賽者須達到一定分數線后才有資格參加複賽。聯賽分普及組和提高組兩個組別,難度不同,分別面向初中和高中階段的學生。

複賽可使用C、C++、Pascal語言,2022年後將不可使用Pascal、C語言,只能使用C++。

2019年,由於某種原因,由CCF主辦的全國青少年信息學奧林匹克聯賽NOIP(普及組及提高組)暫停,但NOIP在2020年恢復。

聯賽歷程


午,計算官網及微眾號布《暫停競賽》,稱“某”,該辦青息奧林匹聯賽(普及組及提組)暫停。
午,計算官網及微眾號布《恢復競賽》,稱獲費資助,該辦青息奧林匹聯賽(普及組及提組)恢復。
-,辦、華東師範大學第二附屬中學承辦的2022全國青少年信息學奧林匹克冬令營(NOI 2022冬令營)在上海舉辦。

命題宗旨


全國青少年信息學奧林匹克聯賽(NOIP)是一項面向全國青少年的信息學競賽和普及活動,旨在向那些在中學階段學習的青少年普及計算機科學知識;給學校的信息技術教育課程提供動力和新的思路;給那些有才華的學生提供相互交流和學習的機會;通過競賽和相關的活動培養和選拔優秀的計算機人才。
競賽的目的是為了在更高層次上推動普及。本競賽及其相關活動遵循開放性原則,任何有條件和有興趣的學校和個人,都可以在業餘時間自願參加。本活動不和現行的學校教學相衝突,也不列入教學計劃,是課外性質的因材施教活動。參加者可為初高中學生或其他中等專業學校的青少年。

加分保送


2010年11月19日,教育部宣布取消了各項奧林匹克競賽全國決賽一等獎以下的高校保送資格,改由所在地招生委員會決定是否給予20分及以下的加分。調整政策從2011年秋季進入高中階段一年級的學生開始適用,2010年(含)以前已進入高中階段學習的學生,仍可適用調整前的相關政策。
根據教育部現行《普通高校招收保送生辦法》中關於保送生選拔條件的規定,獲得全國青少年信息學奧林匹克聯賽(NOIP)一等獎的應屆高中畢業生,均具有保送進入高校就讀的資格。部分地區一等獎獲獎選手還享有高考加分優惠,具體情況視省招辦政策而定。獲獎選手可申請參加高校自主招生和保送生考試,經高校測試通過,可享受高考降分優惠或直接保送錄取。
NOIP中成績優秀的非高三選手,可以作為省代表隊成員參加全國決賽(NOI)及夏令營比賽(部分省市代表隊人員須經過選拔賽決出)。NOIP獲獎選手同樣具有保送資格,並且成績優秀的選手能夠當場獲得高校點招,免試進入名牌大學。夏令營作為全國決賽的擴大賽,本身不具有保送資格,但如果選手之前已獲得NOIP一等獎,則同樣可以參與現場保送。2013屆及以前獲得提高組複賽一等獎的高中畢業生可免高考,而通過大學的保送生考試直接被錄取。

普及內容


.計算機的基本組成;
.計算機操作系統使用(Windows,Linux等);
.計算機工作的基本原理;
計算機程序設計的基本方法;
.至少一門高級程序設計語言(非圖形化)(Pascal(2022年將被全部取消)/C(2022年將被部分取消)/C++等);
程序設計中常用的數據結構(指針、多維數組、單鏈表及循環鏈表、二叉樹等)。
普及的重點是根據中學生的特點,培養學生學習計算機的興趣,使得他們對信息技術的一些本質和核心的東西有更多的了解,提高他們創造性地運用程序設計知識解決實際問題的能力。
對學生的能力培養注重
.想象力與創造力;
.對問題的理解和分析能力;
.數學能力和邏輯思維能力;
.對客觀問題和主觀思維的口頭和書面表達能力;
.人文精神。包括與人的溝通和理解能力,團隊精神與合作能力,恆心和毅力,審美能力等。

競賽形式


比賽形式

聯賽分兩個年齡組:初中組和高中組(普及組和提高組)。每組競賽分兩輪:初試和複試。
初試形式為筆試,側重考察學生的計算機基礎知識和編程的基本能力,並對知識面的廣度進行測試。程序設計的描述語言採用Basic(2005年被取消)、C(2022年將被部分取消)/C++或Pascal(2022年將被全部取消)。各省市初試成績在本賽區前百分之十五的學生進入複賽,其分數不計入複賽的成績。初賽時間為10月的第二個或第三個星期六或者星期日下午2:30 - 4:30或者1:30-3:30舉行。
複試形式為上機,側重考察學生對問題的分析理解能力,數學抽象能力,駕馭編程語言的能力和編程技巧、想象力和創造性等。程序設計語言可採用Basic(2005年後被取消)、Pascal(2022年將被取消)、C(2022年將被部分取消)或C++。各省市競賽的等第獎在複試的優勝者中產生。
複賽普及組時間為3.5小時。只進行一試,約在當年的11月的第三個周六進行。
為加強競賽結果的公信力,自2011年起,複賽提高組由一試改為兩試,分由兩天進行。每天競賽試題由原來的4題改為3題。

比賽時間

正常情況下:
初賽是十月的第2個或第3個星期六下午14:30-16:30在考試開始后一個小時可提前交卷,但最好不要提前交卷(普及,提高)
複賽是十一月的第2個星期六下午14:30-18:00(普及組)
十一月的第2個星期六上午8:30-12:00,星期日上午8:30-12:00(共2天,提高組)
例如:
第23屆全國青少年信息學奧林匹克聯賽(CCF NOIP2017)初賽時間為2017年10月14日下午14:30-16:30,複賽一試為2017年11月11日(提高組上午8:30-12:00,普及組下午14:30-18:00)、二試為11月12日(提高組上午8:30--12:00)。
也有例外:
第22屆全國青少年信息學奧林匹克聯賽(CCF NOIP2016)初賽時間為2016年10月22日下午14:30-16:30,複賽一試為2016年11月19日(提高組上午8:30-11:30,普及組下午1:30-4:30)、二試為11月20日(提高組上午8:30--11:30)。
NOIP的複賽競賽時間為3.5小時,且初賽提倡採用網上報名方式,並且全省全部採用網上註冊報名的省份,複賽獲獎名額可獎勵10%。複賽將全部採用網上報名的方式。

試題形式

每次聯賽的試題分四組:初中組初試賽題;初中組複試賽題;高中組初試賽題;高中組複試賽題。其中,初中組初試賽題和高中組初試賽題類型相同,初中組複試賽題和高中組複試賽題類型相同,但初中組和高中組的題目不完全相同,高中組難度略高;以體現年齡特點和層次要求。
初試
初試全部為筆試,滿分100分。試題由四部分組成:
1、選擇題:共20題,每題1.5分,共30分。每題有4個備選答案。試題內容包括計算機基本組成與原理、計算機基本操作、信息科技與人類社會發展的關係等等。(普及組為20道單選題,提高組為15道單選題和5道不定項選擇題,不定項選擇題與答案完全一致才得分,多選或少選均不得分)
2、問題求解題:共2題,每題5分,共10分。試題給出一個敘述較為簡單的問題,要求學生對問題進行分析,找到一個合適的演演算法,並推算出問題的解。答案以字元串方式給出,考生給出的答案與標準答案的字元串相同,則得分;否則不得分。
3、程序閱讀理解題:共4題,每題8分,共32分。題目給出一段程序(沒有關於程序功能的說明),有時也會給出程序的輸入,要求考生通過閱讀理解該段程序給出程序的輸出。輸出以字元串的形式給出,如果與標準答案一致則得分,否則不得分。
4、程序完善題:共2題,第一題14分,共5空;第二題14分,共5空。兩題共28分。題目給出一段關於程序功能的文字說明,然後給出一段程序代碼,在代碼中略去了若干個語句並在這些位置給出空格,要求考生根據程序的功能說明和代碼的上下文,填出被略去的語句。填對則得分,否則不得分。
(2009年普及組試題為第一題5空,每空3分,第二題前三空每空3分,后兩空每空2分)
2010:3道問題求解題:每題5分;程序閱讀理解題:每題7分;程序完善題:第1空,2分;其餘2.5分。
2012:程序完善題:第一第二空2分,其餘3分。
* 複試
複試的題型和形式向全國信息學奧賽(NOI)靠攏,全部為上機編程題,但難度略低。複試為決出競賽成績的最後一個環節。題目難度有易有難,既考慮普及面,又考慮選拔的梯度要求。每一道試題包括:題目、問題描述、樣例說明(輸入、輸出及必要的說明)、數據範圍(數據限制條件)。測試時,測試程序為每道題提供了10~20組測試數據,考生程序每答對一組得5~10分;累計分即為該道題的得分。其中普及組題目包括4道題,每題100分,共計400分;從2011年開始,提高組由一試改為兩試,分由兩天進行。每天競賽試題由原來的4題改為3題。所有進入複賽的提高組選手均參加一試和二試,選手最終成績由一試與二試成績算數相加而得,即滿分為600分。
從2016年開始,每年NOIP複賽普及組、提高組都將各有兩題從NOI題庫中選出。題面可能會變化,解法保持不變。
自2017年來,由於參賽人數增多,NOIP複賽規模的規則進行了調整,包括:每個省賽區可以設立多於兩個的複賽考點(但必須在同一個城市),初賽進入複賽的比例和規模由各省賽區自行決定,在條件許可的情況下,鼓勵更多選手參賽。同時複賽獲獎比例將基本保持不變,全國一等獎獲獎比例約為複賽參賽選手的20%。

知識範圍


考試內容主要包括:計算機發展史、計算機組成、計算機基本原理、計算機程序設計、計算機日常應用等。要求考生掌握至少一門高級程序設計語言(詳見競賽大綱)。為了保持競賽內容的相對連續性,試題涵蓋的知識點和題型至少60%應在普及類的參考書目中出現,其餘內容可能超出該範圍。
為了考核學生的基礎知識、綜合應用能力,激發學生的求知慾和創新思維,體現“與時俱進”的特點,競賽題型在保持大綱相對穩定、優秀學生可能接受和理解的基礎上,按照下述趨勢適當變化:
1、增大與課內知識結合的緊密度;
2、增大解題方法的多樣性和靈活程度;
3、增大開放性試題的比例。
試題的知識範圍具體如下:
全國青少年信息學(計算機)奧林匹克分區聯賽競賽大綱
一、初賽內容與要求:(#表示普及組不涉及,以下同)
計 基
算 本
機 常
的 識
* 誕生與發展 *特點 *在現代社會中的應用
* 計算機系統的基本組成
* 計算機的工作原理# *計算機中的數的表示
* 計算機信息安全基礎知識 *計算機網路
計 基
算 本
機 操
的 作
* MS DOS與Windows的使用基礎(在2013年後,很少出現與MS DOS相關內容)
* 常用輸入/輸出設備的種類、功能、使用
* 漢字輸入/輸出方法
* 常用計算機屏示信息
程序設計基本知識程序的表示
* 自然語言的描述
* PASCAL,C++或C語言
數據結構的類型
* 簡單數據的類型
* 構造類型:數組、字元串
* 了解基本數據結構(線性表、隊列與棧)
程序設計
* 結構化程序的基本概念
* 閱讀理解程序的基本能力
* 具有完成下列過程的能力:
現實世界(指知識範疇的問題)
信息世界(表達解法)
計算機世界(將解法用計算機能實現的數據結構和演演算法描述出來)
基本演演算法處理
* 簡單搜索 * 字串處理
* 排序 * 查找
* 統計 * 分類 * 合併
* 簡單的回溯演演算法
* 簡單的遞歸演演算法
二、複賽內容與要求:在初賽的內容上增加以下內容(2002年修改稿):
計 算
機 軟
*操作系統的使用知識
*編程語言的使用
*結構類型中的記錄類型
*指針類型
*文件(提高組必須會使用文本文件輸入)
*鏈表
*樹
*圖#
*程序設計能力
*設計測試數據的能力
*運行時間和佔用空間的估算能力#
*演演算法的實現能力
*程序調試基本能力
*設計測試數據的基本能力
*程序的時間複雜度和空間複雜度的估計
*排列組合的應用
*進一步加深回溯演演算法、遞歸演演算法
*分治法
*搜索演演算法:寬度、深度優先演演算法
*表達式處理:計算、展開、化簡等#
*動態規劃#
離散數學知識的應用(如排列組合、簡單圖論、數理邏輯)
*分治思想 *模擬法 *貪心法
*簡單搜索演演算法(深度優先 廣度優先)搜索中的剪枝
*動態規劃的思想及基本演演算法
三、初賽試題類型:
註:試題語言三者選一
(程序設計語言:C++語言,C語言或Pascal語言)
(自2022年起,Pascal語言將被全部取消,C語言將被部分取消) 
*判斷 *填空 *完善程序 *讀程序寫運行結果 *問答
四、推薦讀物:
*分區聯賽輔導叢書
*學生計算機世界報及少年電世界雜誌
*NOI導刊