NOIp注意事項

2021-08-28 04:41:59 字數 3251 閱讀 4021

1.比賽前一天晚上請準備好你的各種證件,事先查好去往考場的路線。

2.比賽之前請先調整你的螢幕解析度到你喜歡的大小。

3.比賽之前請把編譯器的字型調為你平時慣用的字型,尤其是注意這種字型中的逗號,點,1,l 這種易混淆的字是不是區分明顯。

4.在不影響視野的情況下,請將字型大小盡可能調大,方便查錯. 壓縮包或許還不能解壓,但是檔名已經可以知道了,在選手目錄下用**模板建好所有檔案,包 括.c/cpp/pas、.in、.out。

開始比賽,不要急於看題目,將試題第一頁的時間、記憶體限制等等一字不落地看完, 把每題的時空限制寫在草稿紙上。

看題目時不能走神,看完題目後將其歸入某幾個框架中,包括:模擬/列舉/搜尋/貪心/動態規劃/圖論/分治請將題目通讀完以後,再開始深入思考你認為最容易的一道題。

根據輸入資料的範圍大致確定演算法複雜度,以下均是可能情況,不絕對:

20:2^20=一百萬,o(2^n),搜尋

100:100^3=一百萬,o(n^3),floyd/搜尋

1000:1000^2=一百萬,o(n^2),動態規劃/圖論

500000:o(nlog(2,n)),二分答案/二分查詢/快排/歸併

1000000:o(n)或 o(1),數學問題/改變思維方向/貪心

即使這道題再容易,也不要著急寫**,請先明確自己每一步要幹什麼後,再開始寫,輕敵會是你最大的錯誤。

8.即使這道題看起來再沒法做,也不要提早放棄,這個時候紙和筆會是你最好的朋友,自己嘗試幾個例子,也許你就會找到答案。

9.請一定先明確自己要幹什麼之後再寫程式,不要走一步想一步 寫下**前,必須保證有充足的思考時間,有成熟的想法後再動手。寫**前,盡量用多而強的資料去測試想到的演算法,畢竟**寫完後再測試就浪費很多時間了不能想一點寫一點,就算是輸入部分也要在整體思路理清後再寫。

10.如果這是一道動態規劃題,請先把轉移方程寫在紙上再程式設計。

11.如果思考 30 分鐘仍一頭霧水,沒有可以實現的演算法,請你果斷遮蔽掉 100%的那一欄資料,開始寫60%,50%乃至 30%的演算法——在 noip 裡面,30 分絕不是小數目。

12.如果你發現你旁邊的人寫得很快,請你放心,他的演算法十有**是錯的。

13.雖然 1s+128mb 記憶體 (這是以前的了,現在應該是 1s + 256mb) 是標準配置,不過也不是每道題都是這樣的,還是請認真閱讀試卷首頁的試題說明。

14.計算記憶體的方法:陣列大小*型別長度/1000 / 1000=所佔記憶體 mb 數,int 型別長度是 4, long long=8。

15.如果對大規模資料的演算法正確性不敢保證。可分段處理:先寫乙個暴力程式應對小規模資料,再寫乙個高效程式應對大規模資料。以函式方式實現。這樣也方便後續對拍。

16.寫完程式之後,請一定不要忙著編譯,請一定要將你的**從頭到尾通讀一遍,也就是靜態查錯,這是整個程式設計過程中最重要的步驟,有的變數重複呼叫問題除錯的話,乙個小時也看不出來,靜態查錯可以一下指出錯誤。

17.靜態查錯請注意以下方面:

(1)是否寫上了 using namespace std?

(2)陣列開得是否夠大?

(3)變數型別是否正確,答案和中間結果是否會爆 int?

(4)memset 時,所填的 sizeof(xx)的 xx 是不是匹配?大小是不是正確?

(5)外層迴圈與內層迴圈的 i,j 是不是混用了?

(6)迴圈變數的列舉範圍是否正確,是否會陣列越界?

(7)涉及到邊界處理、加一減一之類的問題,請在紙上舉個例子,標上下標以後,在程式設計時參照紙上的下標寫

(8)這個程式是在執行你想讓它執行的步驟嗎?

(9)讀入優化處理負數情況了嗎?在小規模資料時請不要讀入優化,反之,則一定要讀入優化。

19.通過樣例後,請你一定不要放鬆警惕,因為樣例並不能覆蓋所有的情況,請自己設計幾組大資料,爭取卡死你的程式。特殊規律的資料,例如全是最小值,全是最大值,單調上公升/下降資料最能影響程式效率與正確性。

20.如果出現問題,請你除錯你的程式,請一定要分模組除錯,不要從頭跟到尾。

21.如果你已經設計不出能卡住你的程式的資料,恭喜你可以做下一題了。

22.如果你用的是 windows,請你注意把 system(「pause」)注釋掉。

23.為了萬無一失,請你用 return 0 結束你的程式。

24.在記憶體允許的情況下,能開普通佇列就不要用迴圈佇列,能開下普通陣列就不要用滾動陣列。

25.在時間允許的情況下,能暴力就暴力,高精度能不壓位就不壓位,優化不需要的就不要。

26.總之,在不超限制的前提下,能不優化就不優化,以減少**量和出錯概率為第一原則。

27.當比賽還剩下 5~15 分鐘的時候,請不要再改動你的程式,即使你懷疑它對你的乙個輸入給出了錯誤答案,因為你自己算出的結果也有可能是錯的。

28.這個時候請你檢查是否注釋掉了該注釋掉的東西,檔名是否寫對,資料夾是否建對,請一定反覆檢查!

29.請記住,noip 不怕暴力,怕瞎算,不怕不會,怕不敢,有時間的話一定要寫乙個暴力程式去對拍,驗證演算法的正確性。

沉著,冷靜,沒有思路上廁所。做能力範圍內的事,盡力就好。不擔心別人強大,小心自己失誤。自己做得完美,就無怨無悔。

31.常用的測試結果:

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無法編譯

32.複習提綱:

(1)數學思維題

(2)高精度計算(加,減,乘,除)

(3)幾種排序演算法的比較和靈活運用

(4)遞推遞迴題

(5)分治演算法(歸併排序,求逆序對,二分思想的靈活運用)

(6)貪心演算法

(7)動態規劃(幾種揹包問題,最長不下降序列,石子歸併,最長公共子串行)

(8)佇列,堆疊,樹型結構的典型問題

(9)dfs,bfs(記憶化搜尋,高效剪枝)

(10)最短路徑(floyed,dijstra,bellman-ford,spfa),最小生成樹(kruscal,prim),並查集

(11)字元函式,結構體內聯函式,過載運算子,大根堆,小根堆,優先佇列(黑科技。。。)

33、解壓考試檔案(密碼有大小寫),爭取一遍通過。

34、根據題目,建好考試資料夾(cq-0001),生成考試題目的cpp檔案,把頭檔案默寫出來,簡單除錯一下程式,輸入輸出檔案

NOIP注意事項

關閉360 在oi中,有哪些看似沒大礙,卻很致命的錯誤?知乎 陣列名寫錯莫名全wa re,樣例還過了 寫對拍就可以避免 打表打了53個陣列,迴圈到55,莫名全wa 如果開了二維陣列,可能在比較大小時候只呼叫了一維。例如d二維陣列,你可能寫dij時寫了d x 1就算給了你1個g空間也要算一下。算空間技...

NOIP2020注意事項

csp2020發揮不是很理想,noip不要掛分呀 考前多複習一下模板,這時重新整理題意義不大 考試前一天一定要休息好,考試時打瞌睡就不好了 更何況今年noip考 4.5h 很容易精神不足 另外,早餐要吃好 從 8 30 考到 13 00 不然會餓的 提前進入考場,遲到的話會很慌的 解壓題目壓縮包時看...

NOIP上機測試注意事項

由於近期模擬題原地 次數較多,故寫一篇警示文 1,標頭檔案 1.1正式比賽中,反正我不敢用bits stdc h。1.2正式比賽中,建議打出以下十個庫 1 include2 include3 include4 include5 include6 include7 include 8 include9...