對於剛進入大學的計算機類同學來說,算法與程序設計競賽算是不錯的選擇,因為我們每天都在解決問題,鍛煉着解決問題的能力。
這里以TZOJ題目為例,如果為其他平台題目我會標注出來,同時我的主頁也歡迎大家去訪問,探索新平台去提高自己
ACM競賽隨機性會比較大,所以新手請掌握好基礎,基礎不牢,地動山搖(大一上)
- C語言題 包括TZOJ1452在內的60道C語言實驗題,可以利用OJ的搜索,由於這種題目比較多,就不一一列舉
- 暴力枚舉 3449 5125 4604 2626
- 遞歸 1483
- 模擬 1093 3715 3726 3727 4391 1148
- 構造 這種題往往在CF中會遇到 刷題集點這里,就是都是英文題
TZOJ200題以后可以嘗試着去刷一些簡單的算法(大一上以及大一下)
- 前綴后綴和 1532 4262
- 二分 5629 1597 1041 3044(二分100次)
- 排序(歸並排序) 2452
- 貪心 1332 5059 1004 3110 4493
- dfs 2777 4408 4833 3104 3360
- bfs 3533 1335 1748 3031
TZOJ300題以后可以嘗試着去刷一些簡單的算法和數據結構,要參加天梯賽就得刷會了(大一下以及大二上)
- 並查集 1299 1278 1540 1612 1638 1840 1856 2574 2647 2648 2649 2769 3136 3197 3246 3274 3644 3645 3649 3660 4692 4915
- 最短路(Floyd Dijkstra Bellman-Ford[SPFA])
- 最小生成樹(Kruskal Prim) 1300 5263 2371 2415 3451 2737 2815
- stl的應用
- 拓撲排序
TZOJ500題左右就可以入門算法了,在省賽中往往用得到。這里也非常推薦一個題目集USCAO
- 背包 台州學院基礎算法學習之背包
- 容斥
- 圖論基礎
- 凸包
- 樹狀數組
- 字典樹
- 矩陣快速冪
之后大概每個隊伍都要分方向了,建議可以打打CF atcoder Wannafly hiho
隊伍中有一個人嘗試下51nod 的三級算法題或五級算法題
內容往往不是割裂的,而是組合的
圖論方向
- 二分圖
- 網絡流
- 強連通分量
- 割邊和割點
- 樹的直徑
- LCA(最近公共祖先)
- 差分約束
- 樹分塊
動態規划方向
- 最長上升(不下降等等)子序列
- 區間DP
- 環形DP
- 狀壓DP
- 概率DP
- 樹形DP
- 單調隊列優化DP
數據結構方向
- 線段樹
- 莫隊
字符串方向
- KMP 2897
- HSAH
- AC自動機
- SA(后綴數組)
- SAM (后綴自動機)
組合數學方向
- 母函數
- 線性求逆元
- 組合數 51nod 1829
- 組合數學上的dp累加
計算幾何方向
- 掃描線 Color it
- 線段求交
- 半平面交
- 隨機化算法
數論方向
- 費馬小定理 3151
- 擴展歐幾里得 3343
- 高斯消元 1676 2968
- 歐拉函數 3303
- 莫比烏斯函數
- 積性函數
- FFT(快速傅里葉變換) 5482 Gym - 101667H CodeForces - 528D
- Miller-Rabin 素數檢測 2646 4383
- RSA等加密算法 1196
線段求交 5625
計算機網絡配置 Gym 100623A