• <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>

            The Way of C++

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              55 Posts :: 0 Stories :: 19 Comments :: 0 Trackbacks

            公告

            The first time i use this blog, i will write something that i learn which i think is worth write down.

            常用鏈接

            留言簿(3)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            本來在google doc上編輯的,但反應(yīng)很慢,只好搬來這里了

            轉(zhuǎn)貼 ACM的算法(覺得很好,有層次感)
            OJ上的一些水題(可用來練手和增加自信)  
            (poj3299*,    poj2159*,     poj2739*    ,poj1083*    ,poj2262*    ,poj1503* (高精度,前導(dǎo)零),poj3006*(素數(shù),暴力),poj2255*(遞歸),  
            poj3094*)  
             
             
            初期:  
            一.基本算法:   
                 (1)枚舉. (poj1753*(bfs)    ,poj2965*(推論||bfs) )  
                 (2)貪心(poj1328*(區(qū)間段),    poj2109*(long double)    ,poj2586*(分情況討論)  
                 (3)遞歸和分治法.   
                 (4)遞推.   
                 (5)構(gòu)造法.(poj3295*(棧)  
                 (6)模擬法.(poj1068*    ,poj2632*    ,poj1573*    ,poj2993,poj2996)  
            二.圖算法:   
                 (1)圖的深度優(yōu)先遍歷和廣度優(yōu)先遍歷.   
                 (2)最短路徑算法(heap+dijkstra,dijkstra,bellman-ford,floyd,)   
                     poj1860
                     poj3259*(bellman-ford 換了種描述而已)
                     poj1062*(枚舉m種等級即可,每種求最短路)
                     poj2253*(dijkstra思想)
                     poj1125*
                     poj2240*(floyd)
                     poj 3013 #(dijkstra+heap實現(xiàn)的最小優(yōu)先隊列+鄰接表)   )  
                 (3)最小生成樹算法(prim,kruskal)  
                    (poj1789*,    poj2485*(prim最大邊),    poj1258*(prime),    poj3026 ,poj 1251*,poj 1861*(生成樹的最大邊) )  
                 (4)拓?fù)渑判?br>          poj1094 #(深搜,以結(jié)點訪問結(jié)束時間降序確定拓?fù)漤樞?
                 (5)二分圖的最大匹配 (匈牙利算法) (poj3041*(行列匹配),poj3020)  
                 (6)最大流的增廣路算法(KM算法). (poj3436,   poj 1273 #(基礎(chǔ),使用edmonds-karp算法) ,poj 1459 # (基礎(chǔ)構(gòu)圖),poj 1149 # (經(jīng)典構(gòu)圖) ) 
            三.數(shù)據(jù)結(jié)構(gòu).   
                 (1)串 (poj1035*(brute force)    ,poj3080*(brute force c string函數(shù)使用)    ,poj1936)  
                 (2)排序(快排、歸并排(與逆序數(shù)有關(guān))、堆排) (poj2388*(qsort),poj2299*(歸并))  
                 (3)簡單并查集的應(yīng)用.  2492*(設(shè)置每個蟲的一個異性蟲) ,1182 #(通過設(shè)置與結(jié)點的相對關(guān)系來實現(xiàn),要仔細(xì)推導(dǎo)), 1988 #( 通過設(shè)置輔助數(shù)組保存結(jié)果值,并在查找過程中進(jìn)行更新)
                 (4)哈希表和二分查找等高效查找法(數(shù)的Hash,串的Hash)     
                    (poj3349*(復(fù)雜度超高,不用STL寫cmp更快),poj3274,POJ2151,    poj1840*#(hash# || bsearch)    ,poj2002#(hash,hash表保存點信息,枚舉兩兩點對,查找另外兩點是否存在,也可使用二分查找,二分效率比較低),    poj2503*(經(jīng)典題目)    ,poj 2513,poj2418#(用二叉查找樹插入,插入時如果找到相同時則記錄數(shù)加一,否則作為新的結(jié)點插入,最后用中序遍歷輸出) )  
                 (5)哈夫曼樹(poj3253 *(use stl priority_queue and __int64)  
                 (6)堆(poj 2442 #,每次對兩個序列用堆在o(nlogn)時間內(nèi)求出前n個最小的數(shù),然后這個作為新的序列與后面的輸入序列作重復(fù)處理,實現(xiàn)取前n個數(shù)我的方法由于可能取到重復(fù)值,所以加了一個哈希表并于判重,  poj 2051 #(跟有序鏈表的K路歸并一樣,可參照CLRS) )
                 (7)trie樹(靜態(tài)建樹、動態(tài)建樹) (poj2513*(并查集+trie+歐拉圖) poj 3630(用一個結(jié)點數(shù)組靜態(tài)模擬動態(tài)建樹)
            四.簡單搜索   
                 (1)深度優(yōu)先搜索 (poj2488*(遞歸),    poj3083,    poj3009*(dfs剪枝),    poj1321*(dfs),    poj2251*(bfs))  
                 (2)廣度優(yōu)先搜索(poj3278*(bfs 使用set存儲已訪問結(jié)點使用find函數(shù)NlogN),    poj1426,    poj3126*( ),    poj3087*(每次只有一個分支的搜索).poj3414*(BFS打印路徑)  
                 (3)簡單搜索技巧和剪枝(poj2531*(bfs+重復(fù)狀態(tài)剪枝,另可以隨機化算法,動態(tài)規(guī)劃(還沒試過) ),    poj1416*(bfs+簡單剪枝),    poj2676,1129)  
            五.動態(tài)規(guī)劃   
                 (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]}.(最優(yōu)二分檢索樹問題)   
            六.數(shù)學(xué)   
                 (1)組合數(shù)學(xué):   
                    1.加法原理和乘法原理.   
                    2.排列組合.   
                    3.遞推關(guān)系.   
                      (POJ3252,poj1850*(組合公式),poj1019*(等差數(shù)列),poj1942*(組合,T數(shù))  
                 (2)數(shù)論.   
                    1.素數(shù)與整除問題   
                    2.進(jìn)制位.   
                    3.同余模運算.  
                      (poj2635*(大整數(shù)模), poj3292,poj1845,poj2115)  
                 (3)計算方法.   
                    1.二分法求解單調(diào)函數(shù)相關(guān)知識.(poj3273*(),    poj3258*,    poj1905*(),    poj3122*()) (數(shù)值計算的....)
            七.計算幾何學(xué).   
                 (1)幾何公式.  
                 (2)叉積和點積的運用(如線段相交的判定,點到線段的距離等). (poj2031*(最小生成樹),poj1039)
             
             
                 (3)多邊型的簡單算法(求面積)和相關(guān)判定(點在多邊型內(nèi),多邊型是否相交)   
                     (poj1408*(求四邊形面積),    poj1584)  
                 (4)凸包.  (poj2187*(求法,排序使用堆排,或快排) poj1113*())  
             
            *****************************************************************************
             
            中級:  
            一.基本算法:   
                 (1)C++的標(biāo)準(zhǔn)模版庫的應(yīng)用. (poj3096*,    poj3007)  
                 (2)較為復(fù)雜的模擬題的訓(xùn)練(poj3393,poj1472,poj3371,poj1027,poj2706)  
            二.圖算法:   
                 (1)差分約束系統(tǒng)的建立和求解. (poj1201,poj2983,poj1364*)  
                 (2)最小費用最大流(poj2516,poj2195)  
                 (3)雙連通分量(poj2942 ,poj 3177)  
                 (4)強連通分支及其縮點.(poj 2762*(單向連通圖判斷 1983ms ,該怎么優(yōu)化),poj 2553* ,poj 1236*,) 
                     poj 2186 #(使用trajan求強連通分量,并將每個分量縮成一點形成新的圖,最后求出度為0的縮點的個數(shù),如果大于等于2個,則結(jié)果為0,否則對應(yīng)
                                       分量的原結(jié)點個數(shù))
                 (5)圖的割邊和割點( poj 3177) 
                     poj 1523 #(每次搜到一個割點i,令tag[i]++,最后輸出割點i,連通區(qū)域的個數(shù)為tag[i]+1,并不需要每次對圖進(jìn)行搜索求連通區(qū)域數(shù)量)
                     poj 3352 #(先找出橋,去掉橋?qū)⑵溆嗟倪B通分支縮成點,再把橋加到縮點圖上形成一棵樹,求出度數(shù)為1的點即葉子結(jié)點的數(shù)目ret,結(jié)果為(ret+1)/2)
                 (6)最小割模型、網(wǎng)絡(luò)流規(guī)約(poj3308, )  
            三.數(shù)據(jù)結(jié)構(gòu).   
                 (1)線段樹. (poj2528,poj2828,    poj2777*,    poj2886,poj2750,poj2985)  
                 (2)靜態(tài)二叉檢索樹. (poj2482,poj2352)  
                 (3)樹狀樹組(poj1195*(二級樹狀,作簡單運算),        poj3321 ,poj2481*,    poj2155)  
                 (4)RMQ. (poj3264*,    poj3368*(原數(shù)組的轉(zhuǎn)換)  
                 (5)并查集的高級應(yīng)用. (poj1703*,2492)  
                 (6)KMP算法. (poj1961*,poj2406*) 2752* (利用next函數(shù)的原理)
            四.搜索   
                 (1)最優(yōu)化剪枝和可行性剪枝   
                 (2)搜索的技巧和優(yōu)化
                     poj3411
                     poj1724 #( dfs+剪枝,因為有重邊,所以采用鄰接表來表示邊)
                 (3)記憶化搜索(poj3373,poj1691)  
                   
            五.動態(tài)規(guī)劃   
                 (1)較為復(fù)雜的動態(tài)規(guī)劃(如動態(tài)規(guī)劃解特別的施行商問題等)  
                     (poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)  
                 (2)記錄狀態(tài)的動態(tài)規(guī)劃. (POJ3254,poj2411,poj1185)  
                 (3)樹型動態(tài)規(guī)劃(poj2057,poj1947,poj2486,poj3140)  
            六.數(shù)學(xué)   
                 (1)組合數(shù)學(xué):   
                    1.容斥原理.   
                    2.抽屜原理.   
                    3.置換群與Polya定理(poj1286,poj2409,poj3270,poj1026).   
                    4.遞推關(guān)系和母函數(shù).   
                      
                 (2)數(shù)學(xué).   
                    1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)  
                    2.概率問題. (poj3071,poj3440)  
                    3.GCD、擴展的歐幾里德(中國剩余定理) (poj3101)   
                 (3)計算方法.   
                    1.0/1分?jǐn)?shù)規(guī)劃. (poj2976)  
                    2.三分法求解單峰(單谷)的極值.   
                    3.矩陣法(poj3150,poj3422,poj3070)  
                    4.迭代逼近(poj3301)  
                 (4)隨機化算法(poj3318*    ,poj2454)  
                 (5)雜題.  
                     (poj1870,poj3296,poj3286,poj1095)  
            七.計算幾何學(xué).   
                    (1)坐標(biāo)離散化.   
                    (2)掃描線算法(例如求矩形的面積和周長并,常和線段樹或堆一起使用).   
                        (poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)  
                    (3)多邊形的內(nèi)核(半平面交)(poj3130,poj3335)  
                    (4)幾何工具的綜合應(yīng)用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429
             
            )  
            高級:  
            一.基本算法要求:    
                  (1)代碼快速寫成,精簡但不失風(fēng)格    
                      (poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)  
                  (2)保證正確性和高效性.  poj3434  
            二.圖算法:   
                  (1)度限制最小生成樹和第K最短路. (poj1639)  
                  (2)最短路,最小生成樹,二分圖,最大流問題的相關(guān)理論(主要是模型建立和求解)  
                     (poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446  
             
                  (3)最優(yōu)比率生成樹.  (poj2728)  
                  (4)最小樹形圖(poj3164)  
                  (5)次小生成樹.   
                  (6)無向圖、有向圖的最小環(huán)     
            三.數(shù)據(jù)結(jié)構(gòu).    
                  (1)trie圖的建立和應(yīng)用. (poj2778)  
                  (2)LCA和RMQ問題(LCA(最近公共祖先問題) 有離線算法(并查集+dfs) 和 在線算法
                      (RMQ+dfs)).(poj1330*    (此題可以直接使用遍歷出兩條路徑尋找最近相同點即可.并且比RMQ+DFS還快)  
                  (3)雙端隊列和它的應(yīng)用(維護一個單調(diào)的隊列,常常在動態(tài)規(guī)劃中起到優(yōu)化狀態(tài)轉(zhuǎn)移
             
            的  
                      目的).  (poj2823)  
                  (4)左偏樹(可合并堆).    
                  (5)后綴樹(非常有用的數(shù)據(jù)結(jié)構(gòu),也是賽區(qū)考題的熱點).   
                     (poj3415,poj3294)  
            四.搜索    
                  (1)較麻煩的搜索題目訓(xùn)練(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
             
             
                  (2)廣搜的狀態(tài)優(yōu)化:利用M進(jìn)制數(shù)存儲狀態(tài)、轉(zhuǎn)化為串用hash表判重、按位壓縮存儲
             
            狀態(tài)、雙向廣搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)  
                  (3)深搜的優(yōu)化:盡量用位運算、一定要加剪枝、函數(shù)參數(shù)盡可能少、層數(shù)不易過大
             
            、可以考慮雙向搜索或者是輪換搜索、IDA*算法. (poj3131,poj2870,poj2286)  
            五.動態(tài)規(guī)劃    
                  (1)需要用數(shù)據(jù)結(jié)構(gòu)優(yōu)化的動態(tài)規(guī)劃.  
                     (poj2754,poj3378,poj3017)  
                  (2)四邊形不等式理論.   
                  (3)較難的狀態(tài)DP(poj3133)  
            六.數(shù)學(xué)    
                  (1)組合數(shù)學(xué).   
                    1.MoBius反演(poj2888,poj2154)  
                    2.偏序關(guān)系理論.   
                  (2)博奕論.   
                    1.極大極小過程(poj3317,poj1085)  
                    2.Nim問題.   
            七.計算幾何學(xué).    
                  (1)半平面求交(poj3384,poj2540)  
                  (2)可視圖的建立(poj2966)  
                  (3)點集最小圓覆蓋.   
                  (4)對踵點(poj2079)  
                  八.綜合題.  
                  (poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263
            posted on 2010-03-14 12:23 koson 閱讀(653) 評論(0)  編輯 收藏 引用 所屬分類: ACM
            亚洲AV日韩精品久久久久久久| 久久香蕉国产线看观看99| 99热都是精品久久久久久| 国产成人精品久久一区二区三区av| 久久国产乱子精品免费女| 免费精品久久久久久中文字幕 | 久久久无码精品亚洲日韩京东传媒 | 国产成人久久精品激情| 国产精品热久久无码av| 欧美精品乱码99久久蜜桃| 久久99免费视频| 久久99久国产麻精品66| 国内精品九九久久久精品| 精品综合久久久久久88小说 | 久久久久久久亚洲Av无码| 久久男人中文字幕资源站| 久久精品中文无码资源站| 久久这里有精品视频| 免费观看久久精彩视频| 亚洲日本va中文字幕久久| 久久精品人妻一区二区三区| 狠狠色丁香久久婷婷综合五月 | 国内精品久久久久久久久电影网| 国内精品伊人久久久久妇| 亚洲嫩草影院久久精品| 久久久久女人精品毛片| 国产精品久久久久蜜芽| 思思久久99热免费精品6| 久久精品www| 99久久免费国产特黄| 久久精品无码一区二区WWW| 久久久无码精品亚洲日韩软件| 亚洲国产精品久久久久久| 99国产精品久久久久久久成人热| 久久人人爽人人爽人人爽| 日韩久久久久中文字幕人妻| 国产高潮国产高潮久久久91 | 亚洲日韩中文无码久久| 伊人伊成久久人综合网777| 日本精品一区二区久久久| 日韩电影久久久被窝网|