Hello大家好,我是洛谷的HansBug。首先自我介紹下,我現在在北京航空航天大學,計算機科學與技術專業讀大二,我參加過2013-2015年的提高組NOIP和NOI2015。
初賽舉辦于大概每年的十月中旬,大概在一個月後(光棍節前後)會進行NOIP複賽。
近些年初賽的門檻也越來越高,在江浙地區,有些市有些年份甚至普及組分數線可以高達95,而其他時候也至少得90才基本能保證進入複賽。
可以說在中強省,初賽的要求越來越嚴格。那麼NOIP初賽有哪些基本的前置要求呢?
熟練運用比賽用語言(Pascal、C、C++,2020年開始NOI不再支援Pascal和C,2022年開始NOIP将不再支援Pascal和C),掌握最基本的文法知識
了解基本的計算機基礎知識,并且能進行簡單的運算
了解基本的算法和資料結構知識,并且能進行一定程度的運用(可以說是整個NOI系列競賽的核心内容,時間關系不在本節詳細講述)
了解一些數學知識,并能進行簡單的運算
下面我們來看看初賽大緻是怎樣的題型分布。
NOIP初賽主要題型分為四種:
選擇題
共占30分
20題,每題1.5分
普及組全部為單選題,提高組為15個單選題和5個多選題(多選題完全正确對才給分)
問題求解
共占10分
兩道題,近年來一般為填空題形式,每題5分
讀程式
共占32分
4題,每題8分
前三題一般為單個填空,最後一道題有時會分成幾個點作答
完善程式
共占28分
分兩道完善程式題,将完整的程式挖掉一些空進行填空
每空2-3分,因評分标準而異
由此看來,選擇題、讀程式和完善程式都占了大約三分之一不到一點的比例,哪一塊都是不能忽視的。
主要考點:
百科題、時事熱點題(2017提高組單選第1題,多選第4、5題)
計算機行業的前沿技術新聞和CCF、NOIP相關的新聞(CCF官網、NOI官網)
計算機基礎知識計算題(2017提高組第2、3、4題)
多做題,了解一般性的計算機基礎知識
(重點)算法、資料結構、數學題(2017提高組第5、6、7、8、9、10、11、12、13、14、15,多選1、2、3題)(時間關系不在本節詳細講述)
那麼接下來,我來科普一些NOIP初賽選擇題常考的計算機基礎知識。
第一代計算機:電子管計算機(代表:ENIAC,約占地170平方米,運算速度每秒約5000次)
第二代計算機:半導體計算機(體積依然挺大的,和現代的計算機樣子大不一樣,仍在使用紙帶編寫程式,運算速度每秒幾十萬次)
第三代計算機:中小規模內建電路計算機(已經有了一些現代電腦的模樣,每片內建不超過1000個邏輯門,每秒幾百萬次到幾千萬次)
第四代計算機:大、超大規模內建電路計算機(目前的計算機,2.0GHz,十億次運算每秒)
未來計算機:人工智能計算機?生物計算機?量子計算機?
說到這,不得不提一下計算機内部的存儲結構。
現代計算機均為2進制計算機(唯一的非2進制計算機——ENIAC,采用十進制)
最小機關為2進制位(Bit),基本機關為位元組(Byte)
換算關系(那麼接下來就是換算關系)
1 Byte = 8 Bit
1 KB = 1024 Byte (1 Kb = 1024 Bit)
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
1 PB = 1024 TB
…………
1 Word = 16 / 32 / 64 / 128 Bit (視計算機字長而定,這個數字也被稱為字長,目前主流為32和64,部分GPU中可能存在128或者更高位數的情況)
還有一類初賽百考不厭的題型就是進制轉換
十進制轉化為其他進制
其他進制轉化為十進制
2^X進制與二進制之間的快速轉換(通過将每一位拆開,分别轉化為二進制再拼接即可,轉回來則為逆過程)
快速轉換的意義:對于有些比較多個不同進制下的數的大小的題目,我們可以将8、16進制的數快速轉化為2進制,10進制的數轉化為2進制,再在二進制下比較,這樣可以大大節省計算時間。
還有一類頻繁出現在卷子上的知識點就是數的表示法——原碼、反碼、補碼。
(均以8位二進制為例)
原碼
首位為符号位,0表示正,1表示負
後面的若幹位為數值位,表示數字的絕對值大小
特點
0有兩種表示法:1000000, 0000000
8位二進制原碼隻能表示255個不同的數
-128無法表示
反碼
後面的若幹位為數值位
當數字為_正數_時,和原碼一樣
數字為負數時,為絕對值的二進制取反
例如
127 -> 01111111
23 -> 00010111
-127 -> 10000000
-23 -> 11101000
0 -> 00000000
-0 -> 11111111
0有兩種表示法
8位二進制反碼隻能表示255個不同的數
補碼
後面的若幹位為數值為
數字為負數時,在反碼的基礎上+1
10000000表示-128
-127 -> 10000001
-23 -> 11101001
-128 -> 10000000
0隻有一種表示法
8位二進制補碼能表示256個不同的數
可以表示-128
對于負數運算,可以直接進行二進制加法運算,完美解決了負數運算的問題,故計算機中有符号整數類型一般都采用這一表示法
還有一類特别喜歡考的就是位圖(Bitmap)。
在X位色的位圖中,每個像素點的存儲将占用X個二進制位(Bit)
例如,灰階色(0-255黑白)的圖檔每個像素将占用8Bit(1位元組),32位色的圖檔每個像素将占用32Bit(4位元組)
在長寬分别為Width, Height的位圖中,将一共需要存儲Width * Height個像素點
綜上,在不考慮檔案頭檔案尾等存儲空間的情況下,位圖存儲空間為(Width * Height * X / 8)位元組(一般考試中問到的存儲空間指的也是這個)
,
平年、閏年:設年份為X,當年份滿足((X % 4 == 0) AND (X % 100 != 0)) OR (x % 400 == 0)時,該年為閏年,即2月有29天,一年有366天。否則為平年,2月僅有28天,一年365天。
馮諾依曼的貢獻:五大部件體系結構(控制器、存儲器、運算器、輸入輸出系統)、存儲程式工作原理、2進制
其他的一些計算機常識例如:
郵件協定,SMTP(簡單郵件傳輸協定)、IMAP(互動郵件通路協定)、POP3(郵局協定版本3)(2017年)
NOI是什麼意思?(全國青少年奧林匹克_競賽_)(2017年)
Microsoft Office的軟體有哪些(2016年)
大小寫鎖定,鍵盤操作(2016年)
輸入輸出裝置分類(即是輸入又是輸出的裝置:光驅、觸摸屏)
各種協定的中文全稱(TCP/IP,傳輸控制協定/網際協定;HTTP,超文本傳輸協定;FTP,檔案傳輸協定……)
A/B/C/D/E類IP位址
除此之外還考過很多其他的相關點。
是以給大家的建議是:
關注前沿計算機技術方面的新聞
關注CCF和NOI系列競賽政策類新聞
多做題,熟悉各類基本知識
考試時要敢猜
首先我們來看下問題求解都有哪些考察點:
數論
圖論
離散數學知識
問題求解類題目的特點:
方法很多樣,不太容易總結一般性的套路
觀察近年來的題目可以發現,答案數字大都不是很大。大部分題目,隻要足夠細心和耐心,都是可以暴力解決的
對于有些題目,不妨采用類似寫程式時采用的算法來解決
比如這樣一道例題:
是以說很多時候不要被限制住了思維。換個角度想問題,或者說用自己最熟悉的方式想問題才是上策。
複習方法:
多做題,熟悉一般排列組合題目的套組
算法和資料結構知識要做到活學活用
鍛煉細心和耐心
分析:
讀程式題一道題8分
意味着在江浙等初賽要求較嚴格的地區,隻要錯一道讀程式題就兇多吉少了
讀程式要力求零失誤
戰術:
對于相對簡單相對短的程式,要認真計算,不能出現失誤
對于相對長、循環次數很多、遞歸結構較複雜(總之逐漸手算很困難)的程式,要嘗試尋找規律
政策一:觀察程式的結構,弄清楚程式每一步都在幹什麼,推測 出程式最終要實作的功能
政策二:當不太容易一下子看出功能時,也可以考慮先按照程式手算上幾個來回,并且仔細觀察各項資料的變化規律,往往這個時候也容易發現一些規律。
注意
不要想當然!不要想當然!不要想當然! 一定要注意帶有一定功能的程式在一些細節上是否有變化。(很多時候一個小細節的變化,甚至可能導緻整個程式功能發生重大變化)
仔細觀察輸入輸出的格式!
輸出到一行 or 輸出到多行?
是否存在修約?保留幾位小數?
是否存在場寬等特殊排版格式?
多做題,鍛煉細心程度和手感
不同于自己編寫程式,在完善程式題目中,我們需要去嘗試了解别人的程式和别人的腦回路。
同時,按照近年來的套路,也常常是對一些基本算法思想的考察(算法基本功很重要!很重要!很重要!)。
此外,近年來,完善程式一般都會告訴選手所采用的算法,這一定程度上算是降低了難度。
在你有了基本的算法基礎之後,我們可以采取如下戰術:
對于沒有任何算法提示的題目,可以先想一想如果自己寫的話,會采取什麼樣的算法,使用什麼樣的資料結構。
對于有算法提示的題目,可以先想一想如果自己采用這一算法去寫這個題目的話,程式大概會是個怎樣的結構。
需要注意的點:
在句末,要注意看原程式是否有分号。如果必要時甚至可以全部寫上分号(實際程式中,多個分号也是可以運作的;但是少了分号将導緻程式無法運作)
一定要注意程式中是否有一些細節上的改動(部分關鍵位置上的細節變化可能導緻整個填空方式大不一樣)
總體:
鞏固資料結構、算法、數學基本功(可以說是整個NOI系列賽事中的重中之重)
充分了解計算機科學相關常識(在選擇題中所占的比例還是有一些的,同時對于以後有興趣在大學中繼續學習計算機相關專業的同學,這些都是挺重要的專業常識)
多做題!多做題!多做題!(鍛煉題感,熟悉一般的套路和解題技巧,做到臨危不亂)
好的以上就是這些,謝謝大家。
大家有什麼疑問的話可以現在提出來。