著名題單,最初來源不詳。直接來源:http://blog.csdn.net/a1dark/article/details/11714009
OJ上的一些水題(可用來練手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 3094)
初期:
一.基本算法:
- 枚舉. (POJ 1753,POJ 2965)
- 貪心(POJ 1328,POJ 2109,POJ 2586)
- 遞歸和分治法.
- 遞推.
- 構造法.(POJ 3295)
- 模擬法.(POJ 1068,POJ 2632,POJ 1573,POJ 2993,POJ 2996)
二.圖算法:
- 圖的深度優先遍歷和廣度優先遍歷.
- 最短路徑算法(dijkstra,bellman-ford,floyd,heap+dijkstra) (POJ 1860,POJ 3259,POJ 1062,POJ 2253,POJ 1125,POJ 2240)
- 最小生成樹算法(prim,kruskal) (POJ 1789,POJ 2485,POJ 1258,POJ 3026)
- 拓撲排序 (POJ 1094)
- 二分圖的最大匹配 (匈牙利算法) (POJ 3041,POJ 3020)
- 最大流的增廣路算法(KM算法). (POJ 1459,POJ 3436)
三.數據結構.
- 串 (POJ 1035,POJ 3080,POJ 1936)
- 排序(快排、歸並排(與逆序數有關)、堆排) (POJ 2388,POJ 2299)
- 簡單並查集的應用.
- 哈希表和二分查找等高效查找法(數的Hash,串的Hash) (POJ 3349,POJ 3274,POJ 2151,POJ 1840,POJ 2002,POJ 2503)
- 哈夫曼樹(POJ 3253)
- 堆
- trie樹(靜態建樹、動態建樹) (POJ 2513)
四.簡單搜索
- 深度優先搜索 (POJ 2488,POJ 3083,POJ 3009,POJ 1321,POJ 2251)
- 廣度優先搜索(POJ 3278,POJ 1426,POJ 3126,POJ 3087.POJ 3414)
- 簡單搜索技巧和剪枝(POJ 2531,POJ 1416,POJ 2676,POJ 1129)
五.動態規划
六.數學
-
組合數學:
-
數論.
-
計算方法.
七.計算幾何學.
- 幾何公式.
- 叉積和點積的運用(如線段相交的判定,點到線段的距離等). (POJ 2031,POJ 1039)
- 多邊型的簡單算法(求面積)和相關判定(點在多邊型內,多邊型是否相交) (POJ 1408,POJ 1584)
- 凸包. (POJ 2187,POJ 1113)
中級:
一.基本算法:
二.圖算法:
- 差分約束系統的建立和求解. (POJ 1201,POJ 2983)
- 最小費用最大流(POJ 2516,POJ 2195)
- 雙連通分量(POJ 2942)
- 強連通分支及其縮點.(POJ 2186)
- 圖的割邊和割點(POJ 3352)
- 最小割模型、網絡流規約(POJ 3308)
三.數據結構.
- 線段樹. (POJ 2528,POJ 2828,POJ 2777,POJ 2886,POJ 2750)
- 靜態二叉檢索樹. (POJ 2482,POJ 2352)
- 樹狀樹組(POJ 1195,POJ 3321)
- RMQ. (POJ 3264,POJ 3368)
- 並查集的高級應用. (POJ 1703,POJ 2492)
- KMP算法. (POJ 1961,POJ 2406)
四.搜索
五.動態規划
- 較為復雜的動態規划(如動態規划解特別的施行商問題等) (POJ 1191,POJ 1054,POJ 3280,POJ 2029,POJ 2948,POJ 1925,POJ 3034)
- 記錄狀態的動態規划. (POJ 3254,POJ 2411,POJ 1185)
- 樹型動態規划(POJ 2057,POJ 1947,POJ 2486,POJ 3140)
六.數學
-
組合數學:
-
數學.
-
計算方法.
七.計算幾何學.
- 坐標離散化.
- 掃描線算法(例如求矩形的面積和周長並,常和線段樹或堆一起使用). (POJ 1765,POJ 1177,POJ 1151,POJ 3277,POJ 2280,POJ 3004)
- 多邊形的內核(半平面交)(POJ 3130,POJ 3335)
- 幾何工具的綜合應用.(POJ 1819,POJ 1066,POJ 2043,POJ 3227,POJ 2165,POJ 3429)
高級:
一.基本算法要求:
二.圖算法:
- 度限制最小生成樹和第K最短路. (POJ 1639)
- 最短路,最小生成樹,二分圖,最大流問題的相關理論(主要是模型建立和求解) (POJ 3155, POJ 2112,POJ 1966,POJ 3281,POJ 1087,POJ 2289,POJ 3216,POJ 2446 )
- 最優比率生成樹. (POJ 2728)
- 最小樹形圖(POJ 3164)
- 次小生成樹.
- 無向圖、有向圖的最小環
三.數據結構.
- trie圖的建立和應用. (POJ 2778)
- LCA和RMQ問題(LCA(最近公共祖先問題) 有離線算法(並查集+dfs) 和 在線算法
(RMQ+dfs)).(POJ 1330) - 雙端隊列和它的應用(維護一個單調的隊列,常常在動態規划中起到優化狀態轉移
的目的). (POJ 2823) - 左偏樹(可合並堆).
- 后綴樹(非常有用的數據結構,也是賽區考題的熱點). (POJ 3415,POJ 3294)
四.搜索
- 較麻煩的搜索題目訓練(POJ 1069,POJ 3322,POJ 1475,POJ 1924,POJ 2049,POJ 3426)
- 廣搜的狀態優化:利用M進制數存儲狀態、轉化為串用hash表判重、按位壓縮存儲
狀態、雙向廣搜、A*算法. (POJ 1768,POJ 1184,POJ 1872,POJ 1324,POJ 2046,POJ 1482) - 深搜的優化:盡量用位運算、一定要加剪枝、函數參數盡可能少、層數不易過大
、可以考慮雙向搜索或者是輪換搜索、IDA*算法. (POJ 3131,POJ 2870,POJ 2286)
五.動態規划
六.數學
七.計算幾何學.
八.綜合題.
(POJ 3109,POJ 1478,POJ 1462,POJ 2729,POJ 2048,POJ 3336,POJ 3315,POJ 2148,POJ 1263)