| 類別 | 必會算法 | 進階/選學 |
| DFS/BFS | 連通分量、拓撲排序、迷宮最短路、剪枝優化(可行性/最優性/對稱性) | IDA*、雙向BFS、舞蹈鏈(DLX) |
| 最短路 | Dijkstra(堆優化)、SPFA、Floyd、Bellman-Ford(負環檢測) | Johnson、A*、雙向 Dijkstra |
| 最小生成樹 | Prim(堆)、Kruskal(並查集)、次小生成樹 | 矩陣樹定理、動態 MST |
| 網絡流 | Dinic、ISAP、費用流(SPFA/Dijkstra+費用) | HLPP、動態流、最小割應用 |
| 圖論進階 | LCA(倍增/Tarjan)、強連通分量(Tarjan/Kosaraju)、2-SAT、雙連通分量 | 哈密爾頓/歐拉回路、樹上啟發式合併(DSU on Tree) |
3. 動態規劃(靈魂考點)
- 線性 DP:最長上升子序列(LIS)、背包完全/多重/分組/依賴、區間 DP(石子合併/矩陣鏈乘法)
- 樹形 DP:樹上背包、樹的直徑/重心、獨立集/支配集
- 狀態壓縮 DP:漢密爾頓路徑、旅行商問題(TSP)、插頭 DP(連通性狀態)
- 數位 DP:計數問題、位運算優化
- 優化技巧:單調隊列/凸包/斜率/分治/四邊形不等式/狀態壓縮
4. 字符串算法
- KMP、Z-function、Manacher、AC 自動機、後綴數組/自動機 (SA/SAM)、回文樹
5. 數學與數論
- 快速冪、擴展歐幾里得、中國剩餘定理、莫比烏斯反演、杜教篩、米勒拉賓/波拉德 Rho 分解、多項式乘法(NTT/FFT)
6. 進階技巧(加分項)
- 位運算優化、分塊/莫隊、CDQ 分治、線性基、隨機化算法、幾何模板(向量/叉積/凸包/旋轉卡殼)
訓練體系建議
- 分專題刷題:按上述分類,每類精選 20-50 題(Luogu/Codeforces/AtCoder)
- 虛擬比賽:每周 1-2 場 CF/AtCoder/洛谷月賽,復盤補漏
- 總結模板庫:維護個人模板(快速冪、線段樹、Dinic、DP 優化等),考試直接調用
- 讀題解/源碼:大神代碼風格、邊界處理、常數優化
刷題平台推薦
| 平台 | 特點 | 適合階段 |
| Luogu (loj.ac) | 國內題庫最全、難度分級清晰、題解豐富 | 入門~省選 |
| Codeforces | 高質量比賽、Div.2/3/4 分級、教育輪 | 普及~提高 |
| AtCoder | 題目優雅、ABC/ARC/AGC 梯度平滑 | 入門~高級 |
| 洛谷/Codeforces 虛擬賽 | 模擬真實比賽環境、鍛炼時間管理 | 全階段 |
NOIP 不按大綱出題,核心在「建模能力」與「代碼實現力」。堅持「日刷一題、周賽一場、月總結一次」,厚積薄發。
- 上一篇文章: C語言整數除法陷阱:自由落體反彈問題中 1/2 歸零導致邏輯錯誤修正
- 下一篇文章: C語言 sync() 函數解析:文件系統同步、用戶自定義與 POSIX 標準區別
Copyright ©
程式碼之家 All Rights Reserved