藍橋杯考點整理

列舉星星發表於2020-10-03

馬上要藍橋省賽了,今晚翻出考綱,查了csdn幾個部落格,然後根據之前做過的藍橋題目,整理了下面的考點。
不保證全,但是希望對整體複習有幫助。
考綱和參考連結放在了最後。

考點:

1、C/C++庫函式以及stl模板
(1)algorithm: sort next_permutation lower_bound/upper_bound
(2)queue(priority_queue) stack vector set map基本操作等
2、資料結構
(1)結構體:注意結構體用sort排序,可自定義cmp函式,也可在結構體內過載“<”運算子。
(2)字串:string類的使用等
(3)圖:兩種表示方法,鄰接表和鄰接矩陣,當n較大時只能採用鄰接表。
(4)樹:樹是一種特殊的圖。
(5)線段樹:基本的單點修改、區間修改、區間查詢等。
3、演算法
(1)暴力:藍橋杯又稱暴力杯,n<=1e3(1000),O(n^ 2)的程式碼大概率能解,如果1e4<=n<=1e6,則要考慮O(n*logn)的演算法,不過藍橋按測試點得分,實在不會,可用O(n^2)騙分,騙到了就是賺到了。
(2)思維:不涉及演算法,不涉及複雜資料結構,往往幾行程式碼就可以解決,考驗思維能力,多訓練此類題目即可。
(3)模擬:模擬指根據題目描述,按部就班的寫程式碼就可以AC,通常思路容易看出但是程式碼量較大,考驗細節與心態。
①大數加減法
②進位制轉換
(4)數學問題:
①質數相關:埃式篩、尤拉篩、唯一分解定理等。
②求最大公因數:要自己會寫gcd函式(歐幾里得演算法)
③快速冪模板
④慢速乘模板(防止相乘的時候數太大爆掉long long)
(5)貪心
(6)動態規劃:
①最長公共子序列
②最長上升/不下降子序列
③揹包問題(01揹包、多重揹包、完全揹包等)
④字首和問題(一維/二維字首和)
(7)搜尋:搜尋基本是必考的點,包括DFS/BFS,可分別用棧和佇列模擬。
(8)圖論:
①最短路:最基本要掌握兩種求法,floyd演算法和dijkstra演算法。前者O(n^3),適用於n不大於1000的情況。後者dijkstra用的較多,資料結構實現有兩種,鄰接矩陣與鄰接表,建議用鄰接表(具體實現啊哈演算法上有)。
②最小生成樹:kruscal演算法和prim演算法
③拓撲排序
(9)字串:迴文、kmp演算法(字串匹配演算法)
(10)其他:並查集、字典樹等

官方考綱:
考查範圍包括:以下範圍中標* 的部分只限於 C/C++大學研究生組、C/C++大學 A 組、Java 大學研究生組、Java 大學 A 組。
C/C++程式設計基礎:包含使用 C/C++編寫程式的能力。該部分不考查選手對某一語法的理解程度,選手可以使用自己喜歡的語句編寫程式。選手可在 C 語言程式中使用標準 C 的庫函式,在 C++語言程式中使用標準 C++的庫函式(包括 C 庫、STL 等)。
Java 程式設計基礎:包含使用 Java 編寫程式的能力。該部分不考查選手對某一語法的 理解程度,選手可以使用自己喜歡的語句編寫程式。選手可在程式中使用 JDK 中自帶的類,但不能使用其它的第三方類。
計算機演算法:列舉、排序、搜尋、計數、貪心、動態規劃、圖論、數論、博弈論*、概率論*、計算幾何*、字串演算法等。
資料結構:陣列、物件/結構、字串、佇列、棧、樹、圖、堆、平衡樹/線段樹、複雜資料結構*、巢狀資料結構*等。
https://blog.csdn.net/xyqqwer/article/details/81262056
https://blog.csdn.net/weixin_43556527/article/details/102975360
https://blog.csdn.net/weixin_30873847/article/details/95669926
https://blog.csdn.net/GD_ONE/article/details/104061907