noip考點整理(應該不是很完整……)


部分來自百度百科、其他的博客

 

 

一、必須會的

1.暴力:

DFSBFS、灌水法搜索、回溯搜索、記憶化搜索、啟發式搜索、最優性剪枝、可行性剪枝

2.貪心

3.模擬

4.騙分

二、基礎算法

1、圖論:SPFAFloydDijkstraTarjiantopo排序、PrimKruskal

歐拉(回)路、哈密頓回路

2、樹:並查集、堆、線段樹/樹狀數組、LCA

3、分治:二分查找、二分答案、求逆序對

4、數論:GCDBSGS、擴展歐幾里得求同余方程、Catalan數、快速冪、快速乘法、差分約束、篩素數

5、字符串:回文串的判定、KMPhash

6、動態規划:背包、線性DP、區間DP、環形DP等等

7、二分圖匹配:匈牙利算法

8、高精度

 

 

考試策略:

1.考試開始前,調界面,寫模板,寫頭文件,測試dev是否可用

2.看題目時注意數據范圍,時限,仔細,不要猜測出題目沒有說明的affairs

3.關於數據范圍..

   20:O(2^n),搜索

   100O(n^3)Floyed/搜索

   1000O(n^2),動態規划/spfa/最小生成樹

   500000O(nlogn),二分答案/快排/線段樹/st/樹鏈剖分/遍歷(DFS可能爆棧)

   1000000O(n)O(1),數學問題/改變思維方向/貪心/kmp/dp

   當然只是一般情況下...

4.long long一定注意在傳遞參數和快速冪中不要開漏了...

還有數論題目

“三年OI一場空,不開longlong見祖宗”

5.以及最近經常把頭文件寫錯(忘記寫iostream,忘記寫stdio.h之類的...

6.寫代碼前想好,能夠證明最好證明,否則多出幾組特殊數據測試

7.想好需要的每一個函數再開始寫,並估算好時間空間復雜度

8.永遠不要嘗試不熟悉的算法orz...

9.一定要寫對拍...

10.千萬不要在最后15分鍾改代碼必錯無疑百發百中

11.絕對不要對答案被虐無疑

12.寫完一題檢查一題,不要趕時間去做T3,保證前兩題的正確性,T3除非是遇到了會寫的算法,不要思考超過15分鍾,直接寫騙分

13.寫完之后再留45min再檢查,數據測試,閱讀代碼,查看細節

14.查看文件名,有沒有把暴力程序交正解

15.前兩題想不出來調不出來不要慌張,根據時間和難度判斷好是否繼續寫繼續調,或者先寫第三題,,決定之后不要猶豫,不要患得患失

16.避免day1認真day2

17.檢查時,對於學過的知識再過一遍,看看有沒有漏掉簡單的算法或者小的優

18.輸入換行符的處理

19.看清評測系統,按評測系統選擇用lld還是%I64d

20.DFS函數記得寫return

21.變量名time屢錯不爽...

22.memsetmemcpy寫在for或者dfs里面忘記算復雜度....

23.coutcin輸出不是必須(bignum)不要用,有TLE的風險

 

比賽常見問題總結

      問題:
      1、對於noip模擬:前兩題在會的情況下碼速不夠,直接斷送第三題的高分機會。
      2、偶爾會有沒判0、爆棧等丟個510分的錯誤,偶爾會有
      3、看到一道題好像會做,一激動就把時間全花在上面了。
      4、臨近結束,一慌起來,連暴力都不會打。
      5、由於時間復雜度估計錯誤而導致正解不敢打。
      6、由於多余的變量查看、數據畫圖過多等多余步驟引起的時間浪費。

      措施:
      1、適當提高一點碼速,打代碼時保持清醒的頭腦,時刻明確自己正在干什么、自己要干什么。
      2、選擇最恰當的方法來碼。那句話說得好:每多一行代碼,就多一次把 i 打成 j 的機會。方法以正確、簡潔為優,冗余代碼一定去除。
      3、多方法調試。眼調、輸出調、拍、各種小數據測。時刻警醒拍真的不是萬能的。
      4、控制好情緒,看題不激動,結束不慌張。深呼吸,念南無地藏王菩薩
      5、要有夢想。打目前想到的最優的方法,無論能否過(如果是暴力要順手加優化)。注意各個版本的程序的存檔。
      6、出了bug先整體感知,不要一上來就斷點。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM