acm经典题Mark
生活随笔
收集整理的這篇文章主要介紹了
acm经典题Mark
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
著名的北郵ACM推薦50題
POJ推薦50題1、標記“難”和“稍難”的題目可以看看,思考一下,不做要求,當然有能力的同學可以直接切掉。
2、標記為A and B的題目是比較相似的題目,建議大家兩個一起做,可以對比總結,且二者算作一個題目。
3、列表中大約有70個題目。大家選做其中的50道,且每類題目有最低數量限制。
4、這里不少題目在BUPT ACM FTP上面都有代碼,請大家合理利用資源。
5、50個題目要求每個題目都要寫總結,養成良好的習慣。
6、這個列表的目的在于讓大家對各個方面的算法有個了解,也許要求有些苛刻,教條,請大家諒解,這些是我們這些年的經驗總結,所以也請大家尊重我們的勞動成果。
第一類 動態規劃(至少6題,2479 and 2593必做)
2479 and 2593 1015 1042 (也可貪心) 1141 1050 1080 1221 1260 2411 (稍難) 1276
第二類 搜索(至少4題)
1011 1033 1129 2049 2056 2488 2492 (稍難,也可并查集)
第三類 貪心(至少2題)
1065 2054 (難) 1521 2709
第四類 最短路(至少3題)
1062 1125 1797 2253 2679 Bellman-Ford (難)
第五類 最小生成樹(至少2題,而且Prim和Kruskal至少各用一次)
1251 1258 1789 2485
第六類 最大流(至少2題)
1087 1459 1149 2516 (最小費用最大流) (難)
第七類 二分圖(至少3題)
1325 1469 2195 (KM算法或最小費用最大流) (難) 2446 1422 and 2594
第八類 并查集(至少2題)
1861 1182 (難) 1308 2524
第九類 快速查找(B-Search, Hash and so on) (至少3題)
2503 2513 (+Euler回路的判定) 1035 1200 2002
第十類 數論(至少2題)
1061 1142 2262 2407 1811(難) 2447 (難)
第十一類 線段樹(無最少題數要求)
2352 (可用簡單方法) 2528
第十二類 計算幾何(至少2題,1113凸包算法必做)
1113 1292 2148 (難) 2653 1584
第十三類 高精度(至少3題,1001必做)
1001 1047 1131 1503 1504 1060 and 1996 (多項式) SCU1002, 1003, 1004 (http://acm.scu.edu.cn/soj)
第十四類 模擬(至少5題)
1029 and 1013 1083 and 2028 2234 and 1067 1012 1026 1068 1120 2271 2632
第十五類 數學(至少4題)
2249 1023 2506 1079 1019 and 1095 1905 and 1064 (二分)
OJ上的一些水題(可用來練手和增加自信)
(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)
初期:
一.基本算法:
(1)枚舉. (poj1753,poj2965)
(2)貪心(poj1328,poj2109,poj2586)
(3)遞歸和分治法.
(4)遞推.
(5)構造法.(poj3295)
(6)模擬法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.圖算法:
(1)圖的深度優先遍歷和廣度優先遍歷.
(2)最短路徑算法(dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
(3)最小生成樹算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
(4)拓撲排序 (poj1094)
(5)二分圖的最大匹配 (匈牙利算法) (poj3041,poj3020)
(6)最大流的增廣路算法(KM算法). (poj1459,poj3436)
三.數據結構.
(1)串 (poj1035,poj3080,poj1936)
(2)排序(快排、歸并排(與逆序數有關)、堆排) (poj2388,poj2299)
(3)簡單并查集的應用.
(4)哈希表和二分查找等高效查找法(數的Hash,串的Hash)?
(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
(5)哈夫曼樹(poj3253)
(6)堆
(7)trie樹(靜態建樹、動態建樹) (poj2513)
四.簡單搜索
(1)深度優先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)
(2)廣度優先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)
(3)簡單搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
五.動態規劃
(1)背包問題. (poj1837,poj1276)
(2)型如下表的簡單DP(可參考lrj的書 page149):
1.E[j]=opt{D[i]+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最長公共子序列)?
(poj3176,poj1080,poj1159)
3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最優二分檢索樹問題)
六.數學
(1)組合數學:
1.加法原理和乘法原理.
2.排列組合.
3.遞推關系.
(POJ3252,poj1850,poj1019,poj1942)
(2)數論.
1.素數與整除問題
2.進制位.
3.同余模運算.
(poj2635, poj3292,poj1845,poj2115)
(3)計算方法.
1.二分法求解單調函數相關知識.(poj3273,poj3258,poj1905,poj3122)
七.計算幾何學.
(1)幾何公式.
(2)叉積和點積的運用(如線段相交的判定,點到線段的距離等). (poj2031,poj1039)
(3)多邊型的簡單算法(求面積)和相關判定(點在多邊型內,多邊型是否相交)
(poj1408,poj1584)
(4)凸包. (poj2187,poj1113)
中級:
一.基本算法:
(1)C++的標準模版庫的應用. (poj3096,poj3007)
(2)較為復雜的模擬題的訓練(poj3393,poj1472,poj3371,poj1027,poj2706)
二.圖算法:
(1)差分約束系統的建立和求解. (poj1201,poj2983)
(2)最小費用最大流(poj2516,poj2516,poj2195)
(3)雙連通分量(poj2942)
(4)強連通分支及其縮點.(poj2186)
(5)圖的割邊和割點(poj3352)
(6)最小割模型、網絡流規約(poj3308, )
三.數據結構.
(1)線段樹. (poj2528,poj2828,poj2777,poj2886,poj2750)
(2)靜態二叉檢索樹. (poj2482,poj2352)
(3)樹狀樹組(poj1195,poj3321)
(4)RMQ. (poj3264,poj3368)
(5)并查集的高級應用. (poj1703,2492)
(6)KMP算法. (poj1961,poj2406)
四.搜索
(1)最優化剪枝和可行性剪枝
(2)搜索的技巧和優化 (poj3411,poj1724)
(3)記憶化搜索(poj3373,poj1691)
五.動態規劃
(1)較為復雜的動態規劃(如動態規劃解特別的施行商問題等)
(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
(2)記錄狀態的動態規劃. (POJ3254,poj2411,poj1185)
(3)樹型動態規劃(poj2057,poj1947,poj2486,poj3140)
六.數學
(1)組合數學:
1.容斥原理.
2.抽屜原理.
3.置換群與Polya定理(poj1286,poj2409,poj3270,poj1026).
4.遞推關系和母函數.
(2)數學.
1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)
2.概率問題. (poj3071,poj3440)
3.GCD、擴展的歐幾里德(中國剩余定理) (poj3101)
(3)計算方法.
1.0/1分數規劃. (poj2976)
2.三分法求解單峰(單谷)的極值.
3.矩陣法(poj3150,poj3422,poj3070)
4.迭代逼近(poj3301)
(4)隨機化算法(poj3318,poj2454)
(5)雜題.
(poj1870,poj3296,poj3286,poj1095)
七.計算幾何學.
(1)坐標離散化.
(2)掃描線算法(例如求矩形的面積和周長并,常和線段樹或堆一起使用).
(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
(3)多邊形的內核(半平面交)(poj3130,poj3335)
(4)幾何工具的綜合應用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
高級:
一.基本算法要求:?
(1)代碼快速寫成,精簡但不失風格?
(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
(2)保證正確性和高效性. poj3434
二.圖算法:
(1)度限制最小生成樹和第K最短路. (poj1639)
(2)最短路,最小生成樹,二分圖,最大流問題的相關理論(主要是模型建立和求解)
(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
(3)最優比率生成樹. (poj2728)
(4)最小樹形圖(poj3164)
(5)次小生成樹.
(6)無向圖、有向圖的最小環?
三.數據結構.?
(1)trie圖的建立和應用. (poj2778)
(2)LCA和RMQ問題(LCA(最近公共祖先問題) 有離線算法(并查集+dfs) 和 在線算法
(RMQ+dfs)).(poj1330)
(3)雙端隊列和它的應用(維護一個單調的隊列,常常在動態規劃中起到優化狀態轉移的
目的). (poj2823)
(4)左偏樹(可合并堆).?
(5)后綴樹(非常有用的數據結構,也是賽區考題的熱點).
(poj3415,poj3294)
四.搜索?
(1)較麻煩的搜索題目訓練(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
(2)廣搜的狀態優化:利用M進制數存儲狀態、轉化為串用hash表判重、按位壓縮存儲狀態、雙向廣搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
(3)深搜的優化:盡量用位運算、一定要加剪枝、函數參數盡可能少、層數不易過大、可以考慮雙向搜索或者是輪換搜索、IDA*算法. (poj3131,poj2870,poj2286)
五.動態規劃?
(1)需要用數據結構優化的動態規劃.
(poj2754,poj3378,poj3017)
(2)四邊形不等式理論.
(3)較難的狀態DP(poj3133)
六.數學?
(1)組合數學.
1.MoBius反演(poj2888,poj2154)
2.偏序關系理論.
(2)博奕論.
1.極大極小過程(poj3317,poj1085)
2.Nim問題.
七.計算幾何學.?
(1)半平面求交(poj3384,poj2540)
(2)可視圖的建立(poj2966)
(3)點集最小圓覆蓋.
(4)對踵點(poj2079)
八.綜合題.
(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)
總結
以上是生活随笔為你收集整理的acm经典题Mark的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双色球复式7+1,现中4+1奖金是多少?
- 下一篇: 夜色多美好是哪首歌啊?