• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
              C++博客 :: 首頁 :: 新隨筆 ::  ::  :: 管理

            ACM的算法(覺得很好,有層次感)

            Posted on 2010-08-20 09:45 Kevin_Zhang 閱讀(673) 評論(0)  編輯 收藏 引用 所屬分類: ACM基礎知識

            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+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)

             

            Dp狀態設計與方程總結

             

            1.不完全狀態記錄

            <1>青蛙過河問題

            <2>利用區間dp

            2.背包類問題

            <1> 0-1背包,經典問題

            <2>無限背包,經典問題

            <3>判定性背包問題

            <4>帶附屬關系的背包問題

            <5> + -1背包問題

            <6>雙背包求最優值

            <7>構造三角形問題

            <8>帶上下界限制的背包問題(012背包)

            3.線性的動態規劃問題

            <1>積木游戲問題

            <2>決斗(判定性問題)

            <3>圓的最大多邊形問題

            <4>統計單詞個數問題

            <5>棋盤分割

            <6>日程安排問題

            <7>最小逼近問題(求出兩數之比最接近某數/兩數之和等于某數等等)

            <8>方塊消除游戲(某區間可以連續消去求最大效益)

            <9>資源分配問題

            <10>數字三角形問題

            <11>漂亮的打印

            <12>郵局問題與構造答案

            <13>最高積木問題

            <14>兩段連續和最大

            <15>2次冪和問題

            <16>N個數的最大M段子段和

            <17>交叉最大數問題

            4.判定性問題的dp(如判定整除、判定可達性等)   

            <1>模K問題的dp

            <2>特殊的模K問題,求最大(最小)模K的數

            <3>變換數問題

            5.單調性優化的動態規劃

            <1>1-SUM問題

            <2>2-SUM問題

            <3>序列劃分問題(單調隊列優化)

            6.剖分問題(多邊形剖分/石子合并/圓的剖分/乘積最大)

            <1>凸多邊形的三角剖分問題

            <2>乘積最大問題

            <3>多邊形游戲(多邊形邊上是操作符,頂點有權值)

            <4>石子合并(N^3/N^2/NLogN各種優化)

            7.貪心的動態規劃

            <1>最優裝載問題

            <2>部分背包問題

            <3>乘船問題

            <4>貪心策略

            <5>雙機調度問題Johnson算法

            8.狀態dp

            <1>牛仔射擊問題(博弈類)

            <2>哈密頓路徑的狀態dp

            <3>兩支點天平平衡問題

            <4>一個有向圖的最接近二部圖

            9.樹型dp

            <1>完美服務器問題(每個節點有3種狀態)

            <2>小胖守皇宮問題

            <3>網絡收費問題

            <4>樹中漫游問題

            <5>樹上的博弈

            <6>樹的最大獨立集問題

            <7>樹的最大平衡值問題

            <8>構造樹的最小環

            久久只这里是精品66| 国产精品久久久久久影院 | 久久精品国产亚洲5555| 国产精品成人精品久久久| 久久er热视频在这里精品| 久久精品视频网| 三级韩国一区久久二区综合 | 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产精品成人久久久久久久| 中文字幕人妻色偷偷久久| 性做久久久久久免费观看| 欧美国产精品久久高清| 精品水蜜桃久久久久久久| 国产日韩欧美久久| 欧美伊人久久大香线蕉综合69| 亚洲?V乱码久久精品蜜桃 | 亚洲乱码日产精品a级毛片久久| 99久久精品免费看国产一区二区三区| 久久综合一区二区无码| 成人资源影音先锋久久资源网| 亚洲欧美一区二区三区久久| 久久精品一区二区国产| 中文字幕精品无码久久久久久3D日动漫 | 香蕉aa三级久久毛片| 久久精品国产精品亚洲精品| 91麻豆国产精品91久久久| 久久精品国产WWW456C0M| 久久91综合国产91久久精品| 婷婷久久久亚洲欧洲日产国码AV| 久久国产精品视频| 亚洲精品高清国产一久久| 伊人色综合久久天天人手人婷| 亚洲国产精品成人久久蜜臀| 婷婷综合久久狠狠色99h| 国产精品岛国久久久久| 久久精品国产亚洲AV高清热 | 精品乱码久久久久久夜夜嗨| 91精品国产高清久久久久久io| 久久香综合精品久久伊人| 久久亚洲熟女cc98cm| 中文字幕乱码久久午夜|