1. 程式人生 > >【NOIP】考前須知

【NOIP】考前須知

考試須知:

考試準備:身份證(或學生證)、筆、手錶(調準考試機的系統時間)

考試之前:

<1> 解壓考試檔案(密碼有大小寫)

<2> 根據題目,建好考試資料夾(CQ-0001),生成考試題目的cpp檔案

<3> 寫標頭檔案,簡單除錯一下程式,寫好輸入輸出檔案

<4> 最好寫下結束in和out檔案: fclose(stdin); fclose(stdout);

考試檢查方法:

<1> 靜態查錯,製造特殊資料(極小,極大,全相等,分母不等於0)
<2> 隨機函式自動生成資料,對拍程式。

C++知識總結:

分類整理知識

1、貪心
2、分治(二分答案,歸併排序...)
3、搜尋(DFS+BFS+ priority_queue優先佇列)

4、DP(揹包問題)

5、列舉

6、圖論(最小路徑,最小生成樹等等)

最近幾次考試暴露出的問題:

1、對思維性的題目,不夠靈活的解決;

2、檔案輸入輸出的格式,有人犯過嚴重失誤(檔名都寫錯了);

3、輸出檔案把除錯結果一起輸出,造成嚴重失分;

4、考試時間分配不合理,要麼提前做完,不認真檢查;要麼在考試結束最後10分鐘都在修改除錯程式,一題編寫多個程式,提交時卻交錯程式;

5、考試心態不好,平時做題好,考試就緊張,思路混亂;

6、題目解決方法粗糙

單一,找題目的正解需要下功夫。

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

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

3.比賽之前請把編譯器的字型調為你平時慣用的字型,尤其是注意這種字型中的逗號,點,1l這種易混淆的字是不是區分明顯4.在不影響視野的情況下,請將字號儘可能調大,方便查錯.壓縮包或許還不能解壓,但是檔名已經可以知道了,在選手目錄下用程式碼模板建好所有檔案,包括.c/cpp/pas、.in、.out

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

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

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

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

4memset 時,所填的sizeofXX)的XX 是不是匹配?大小是不是正確?(5)外層迴圈與內層迴圈的ij 是不是混用了?

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

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

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

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

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

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

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

22.如果你用的是 windows,請你注意把 system“pause”)註釋掉

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

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

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

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

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

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

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

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

相關推薦

NOIP考前須知

考試須知: 考試準備:身份證(或學生證)、筆、手錶(調準考試機的系統時間) 考試之前: <1> 解壓考試檔案(密碼有大小寫) <2> 根據題目,建好考試資料夾(CQ-0001),生成考試題目的cpp檔案 <3> 寫標頭檔案

noip跟著洛谷刷noip

color 地毯 out -s targe name har hide str 傳送門 1.鋪地毯 d1t1 模擬 //Twenty #include<cstdio> #include<cstdlib> #include<iostream&

noip跟著洛谷刷noip題2

lap log 跟著 als blog mes 長度 else void noip好難呀。 上一個感覺有點長了,重開一個。 36.Vigenère 密碼 粘個Openjudge上的代碼 #include<cstdio> #include<iostream

NOIP提高組2016 蚯蚓

one noi -i splay pla uoj 過程 etc closed 【題目鏈接】Universal Online Judge 【題解】本題最大的特點在於從大到小切以及切分規則一致,都是切成px和x-px。 由這兩個特點很容易得到結論,後切的蚯蚓得到的px一定比先切

NOIP提高組2016 憤怒的小鳥

小鳥 fabs eps targe while return sed type alt 【題意】Universal Online Judge 【算法】狀態壓縮型DP 【題解】看數據範圍大概能猜到是狀壓了。 根據三點確定一條拋物線,枚舉兩個點之間的拋物線,再枚舉有多少點在拋物

NOIP提高組2012 疫情控制

closed ide span sin 容易 lld isdigit i++ 表示 【題意】n個點的樹,1為根,要求刪除一些點使得截斷根節點和所有葉子結點的路徑(不能刪根,可以刪葉子)。有m支軍隊在m個點上,每時刻所有軍隊可以走一步,最終走到的地方就是刪除的點,求最短時間。

NOIP數的劃分

out string 數的劃分 平均值 bsp ++ names oid 題目 題目網址https://www.luogu.org/problemnew/show/P1025#sub 這題搜索直接過,加一個比較簡單的剪枝即可,因為你要把它們想成有序的,情況才不會多,所以每個

跳石頭NOIP

nbsp 會有 lse 進行 ons num 二分 amp printf 題目背景 一年一度的“跳石頭”比賽又要開始了! 題目描述 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大巖石。組委會已經選擇好了兩塊巖石作為比賽起點和終點。在起點和終點之間,有 N 塊巖石(不

NOIP複賽注意事項

NOIP複賽注意事項 保持良好心態 晚上早睡,早餐要吃飽 進場試機打好每題標頭檔案、檔案輸入輸出模板,線段數,堆,KMP,字典樹等 前30分鐘看題,思考 資料夾路徑不要建錯,要建立子資料夾 檔名不要打錯,最好複製 模數不要打錯,最好複製 注意看清資料範圍 注意審題,看清每個細節 記得開l

noip2016 運輸計劃

可以使用樹剖 nlog^2n 卡常後能過 就是碼量有點大 #include<bits/stdc++.h> #define R register using namespace std; const int maxn=3e5+5; char *P; void

NOIP 2018 考前須知

Day0Day0Day0來水一發 Created with Raphaël 2.2.0開始考試瀏覽題面(3遍),注意資料範圍初步判定難度,先易後難15分鐘左右想正解實在想吃不出寫暴力,NOIP部分分很多的QwQ寫程式碼時,想好再寫,不要亂,用好草稿紙寫完後靜態查

NOIP一篇正式的NOIP2017總結

【注:程式碼全部放在最後連結】 Day1 T1 小凱的疑惑 【題目描述】 小凱手中有兩種面值的金幣,兩種面值均為正整數且彼此互素。每種金幣小凱都有 無數個。在不找零的情況下,僅憑這兩種金幣,有些物品他是無法準確支付的。現在小 凱想知道在無法準確支

NOIP借教室(線段樹)

題解明天寫(因為今天腦子好像沒了) 來了……PS:該題正解是貪心。 用線段樹做的原因是被坑了。 區間修改,記錄一個treemin,當treemin<0就輸出答案。 洛谷95分 codevs AC的程式碼: #include<cstdio&g

NOIP普及組 2014 問題求解

【題目】 1. 把 M 個同樣的球放到 N 個同樣的袋子裡,允許有的袋子空著不放,問共有多少種不同的放置方法?(用 K 表示)。 例如,M=7,N=3時,K=8;在這裡認為和是同一种放置方法。 問:M=8,N=5時,K=__。 2. 如圖所示,圖中每條邊

NOIP模擬賽密碼鎖

提示 都是 sin urn 輸入 題目 fin i++ 元素 題目描述 hzwer有一把密碼鎖,由N個開關組成。一開始的時候,所有開關都是關上的。當且僅當開關x1,x2,x3,…xk為開,其他開關為關時,密碼鎖才會打開。 他可以進行M種的操作,每種操作

暑假NOIP期末考試1—— Phantom

ade 快的 while num eas for 靈感 搜索 時間復雜度 Phantom ?題目名稱: phantom ?時間限制:1 秒 ?空間限制:256 MiB 題目描寫敘述 在一個無限大的棋盤上。排列著 n * n 枚棋子,形成一

noip 2016普及組

scrip one clu sel b+ -s 位置 ref print T1.買鉛筆 題目鏈接 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4

2017.07.10NOIP提高組模擬賽B組

font mic 集合點 之間 現在 problem 決定 family 打破 Summary   今天題目總體不是難,但是分數很低,只有100+10+30,其中第二題還是以前做過的,第一題設計數論,而且以前做過同一個類型的題目,比賽推了很長時間。第三題時以前做過的原題,

2017.07.11NOIP提高組模擬賽B組

span 結果 數組 運算 重要 eight 一點 對數 理解 Summary   今天的比賽打得還不錯,第一題被同桌灌輸的貪心,純模擬洗腦了,然後steal的看了一下,發現怎麽也對不了,一直在檢查。最後10分鐘才找出反例,推出動態規劃方程,沒有想到怎麽轉移,比賽就結束了

2017.07.14NOIP提高組模擬賽B組

noi net 處理 contest 比賽 size 很大的 pan 每天 Summary   這次比賽因為遲到了,少了很多時間,也受到了相應的懲罰,這是好的,是個標記牌,警醒著我。這次比賽的題目很難,也就是說,大家的得分都很低,總的來說,收獲還是很大的,因為有非常多的技