1.打代碼的時候一定要細心,for循環的末尾該不該加';'一定要認清。(主要指讀入優化)
2.由於Dev-c++裏面'1'和'l'非常容易混淆,能不這麼定義就不這麼定義。
3.數組的範圍一定要看清,不可超空間也不能不開夠。
4.二分等等的需要注意邊界問題,爲防萬一手寫幾個樣例來定邊界。
5.若是有多組數據或是要多次調用變量,記得將其清零或初始化。
6.有時候題目上的int計算幾次就變成了long long,不要忘開。
7.不能只相信樣例,一定要自己手動出幾個樣例來運行一下。
8.若是想到了某種方法但模板不是很熟,先打暴力,打完後拍一下,再debug。
9.能不用高精度就不用,比較容易寫錯。
10.沒有想法的題可以打表找一下規律。
11.有些不一定要寫在循環裏的東西可以提出來寫,預處理一下,降低複雜度。(e.g. 前綴和)
12.涉及邊界的計算要精細,例如說加不加1,是返回l還是r等等。
13.不管怎麼說,各種算法的模板一定要熟悉。
14.動態規劃的狀態轉移方程實在想不出來就暴力打表,直接看出來。
15.各種運算符的優先級若不是很清楚就多打幾個括號。
16.最短路的無相邊的空間要*2,線段樹的數組空間要*4。
17.相近的變量名儘量避免打錯,否則一發不可收拾。
18.就算認爲自己的代碼是對的,也不能少了特判,這樣萬一出什麼問題還有一定的分。
19.就算想不出來正解,也不要放棄暴力,暴力加適當優化,再減小常數,說不定可以出奇跡。
【暴力直接AC掉的又不是沒有先例。。。】
20.預防死循環啊什麼的,for和while的邊界什麼的要注意,<=和<的區別,n和n-1的區別,正着遍歷和反着的區別……
21.排序的時候若是想不出來正解可以換一個方向,例如排序一段區間可以以起點爲關鍵字,也可以以終點或區間長度爲關鍵字。
22.想不出來就換一種方向啊,不要在一條路上執迷不悟。
23.做題順序要講求策略,先全都簡略看一遍,再決定先做哪道,後做哪道。
題目是不是很正經啊,上面的內容是不是也很正經啊,是不是是不是是不是。。。?
其實並沒有什麼正經想說的,不管怎麼說也是停了一個半月的課了,該總結的該複習的該說的都說了,自己覺得還沒有複習好倒是真的,不過那大概歸功於平時沒有抓緊時間??
最後一次考試也就是今天的考試不決定打總結了,就當是一次放縱吧。
還有僅僅一天的時間了,不如打幾個模板好好放鬆一下(喂這真的是放鬆麼摔。。)
哦還有一些自己不是很清楚的C++的自帶函數,比如lower_bound,reverse 什麼的,還是不用爲好。
真的希望能夠拿到一等獎,也不枉這一年多的學習。
或許會有些遺憾吧,不過可能以後大學就會選這方面的專業了,以這個作爲人生的航向也是不錯。
亂七八糟的說了一些,大概是因爲心裏還是沒底啊。。。。
↖(^ω^)↗加油!!!
最後貼一段僞代碼:
while(1)
NOIP RP+=2e18;