ACM算法分類(lèi)、推薦學(xué)習(xí)資料和配套習(xí)題

相信每一位玩ACM程序設(shè)計(jì)競(jìng)賽的同學(xué)來(lái)說(shuō)膀藐,都有一個(gè)從入門(mén)到精通的過(guò)程征峦,而且分享他們經(jīng)驗(yàn)的時(shí)候,見(jiàn)到最多的就是一種合作和拼搏精神消请,樂(lè)在其中的那種激情栏笆。

Wilbert即將畢業(yè),作為一個(gè)菜鳥(niǎo)級(jí)的入門(mén)玩家臊泰,一直很想知道如何能在程序設(shè)計(jì)競(jìng)賽中成為一個(gè)高手蛉加。即將無(wú)緣類(lèi)似競(jìng)賽的我,終于整理出了一些程序設(shè)計(jì)競(jìng)賽ACM訓(xùn)練之道缸逃,愿與大家分享针饥。

首先是編程的能力,一般要做到50行以?xún)?nèi)的程序不用調(diào)試需频、100行以?xún)?nèi)的二分鐘內(nèi)調(diào)試成功丁眼。

訓(xùn)練過(guò)ACM等程序設(shè)計(jì)競(jìng)賽的人在算法上有較大的優(yōu)勢(shì),這就說(shuō)明當(dāng)你編程能力提高之后昭殉,主要時(shí)間是花在思考算法上苞七,不是花在寫(xiě)程序與debug上藐守。

第一階段:練經(jīng)典常用算法,下面的每個(gè)算法給我打上十到二十遍蹂风,同時(shí)自己精簡(jiǎn)代碼卢厂,因?yàn)樘S茫砸毜綄?xiě)時(shí)不用想惠啄,10-15分鐘內(nèi)打完慎恒。
1.最短路(Floyd、Dijstra撵渡、BellmanFord)融柬;   
2.最小生成樹(shù)(先寫(xiě)個(gè)prim,kruscal要用并查集趋距,不好寫(xiě))粒氧;   
3.大數(shù)(高精度)加減乘除;  
4.二分查找(代碼可在五行以?xún)?nèi))棚品;   
5.叉乘靠欢、判線段相交、然后寫(xiě)個(gè)凸包铜跑;  
6.BFS门怪、DFS,同時(shí)熟練hash表(要熟锅纺,要靈活,代碼要簡(jiǎn))掷空;  
7.?dāng)?shù)學(xué)上的有:輾轉(zhuǎn)相除(兩行內(nèi)),線段交點(diǎn)囤锉、多角形面積公式坦弟;  
8.調(diào)用系統(tǒng)的qsort, 技巧很多,慢慢掌握官地;  
9.任意進(jìn)制間的轉(zhuǎn)換......

第二階段:練習(xí)復(fù)雜一點(diǎn)酿傍,但也較常用的算法。 如:
1.二分圖匹配(匈牙利)驱入,最小路徑覆蓋赤炒;
2.網(wǎng)絡(luò)流,最小費(fèi)用流亏较;
3.線段樹(shù)莺褒;
4 . 并查集;
5.熟悉動(dòng)態(tài)規(guī)劃的各個(gè)典型:LCS雪情、最長(zhǎng)遞增子串遵岩、三角剖分、記憶化dp巡通;
6.博弈類(lèi)算法尘执。博弈樹(shù)舍哄,二進(jìn)制法;
7.最大團(tuán)正卧,最大獨(dú)立集蠢熄;
8.判斷點(diǎn)在多邊形內(nèi)跪解;
9.差分約束系統(tǒng)炉旷;
10.雙向廣度搜索、A*算法叉讥,最小耗散優(yōu)先......

算法書(shū)有很多可以參考:
1窘行、Concrete Mathematics --- A Foundation For Computer ScienceRonald L. Graham , Donald E. Knuth 图仓, Oren Patashnik  
這本書(shū)《具體數(shù)學(xué)》是Stanford計(jì)算機(jī)系的教材(1970 年開(kāi)始給研究生授課)罐盔,書(shū)的內(nèi)容是Knuth的巨著TAOCP第一章的擴(kuò)展,涉及了計(jì)算機(jī)科學(xué)領(lǐng)域內(nèi)幾乎所有可能遇到的數(shù)學(xué)知識(shí)救崔。書(shū)中許多經(jīng)典問(wèn)題的解答比目前廣泛流傳的解法更易懂惶看。對(duì)于提高大家的數(shù)學(xué)修養(yǎng)有很大幫助。

2六孵、Introduction to AlgorithmsThomas H. Cormen 纬黎,Charles E. Leiserson ,Ronald L. Rivest 劫窒,Clifford Stein  
《算法導(dǎo)論》MIT計(jì)算機(jī)系的經(jīng)典算法教材本今。作者Rivest獲得過(guò)ACM Turing Award,牛主巍!本書(shū)內(nèi)容全面冠息,語(yǔ)言通俗,很適合大家入門(mén)孕索。

3逛艰、實(shí)用算法的分析和程序設(shè)計(jì),吳文虎 王建德  
大名鼎鼎的“黑書(shū)”搞旭。內(nèi)容包括了競(jìng)賽需要的各種算法散怖,各種層次的讀者都適合。

4选脊、網(wǎng)絡(luò)算法與復(fù)雜性理論謝政 李建平  
內(nèi)容很豐富的圖論教材

5杭抠、算法+數(shù)據(jù)結(jié)構(gòu)=程序N.Wirth  
Pascal語(yǔ)言的發(fā)明人Wirth教授的名著,深入闡述了算法與數(shù)據(jù)結(jié)構(gòu)的關(guān)系恳啥,對(duì)每個(gè)算法都提供詳細(xì)的Pascal源程序偏灿,適合各種水平的讀者。

一.動(dòng)態(tài)規(guī)劃

參考資料:
劉汝佳《算法藝術(shù)與信息學(xué)競(jìng)賽》《算法導(dǎo)論》
推薦題目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1141
簡(jiǎn)單
http://acm.pku.edu.cn/JudgeOnline/problem?id=2288
中等钝的,經(jīng)典TSP問(wèn)題
http://acm.pku.edu.cn/JudgeOnline/problem?id=2411
中等翁垂,狀態(tài)壓縮DP
http://acm.pku.edu.cn/JudgeOnline/problem?id=1112
中等
http://acm.pku.edu.cn/JudgeOnline/problem?id=1848
中等铆遭,樹(shù)形DP⊙夭拢可參考《算法藝術(shù)與信息學(xué)競(jìng)賽》動(dòng)態(tài)規(guī)劃一節(jié)的樹(shù)狀模型
http://acm.zju.edu.cn/show_problem.php?pid=1234
中等枚荣,《算法藝術(shù)與信息學(xué)競(jìng)賽》中的習(xí)題
http://acm.pku.edu.cn/JudgeOnline/problem?id=1947
中等,《算法藝術(shù)與信息學(xué)競(jìng)賽》中的習(xí)題
http://acm.pku.edu.cn/JudgeOnline/problem?id=1946
中等啼肩,《算法藝術(shù)與信息學(xué)競(jìng)賽》中的習(xí)題
http://acm.pku.edu.cn/JudgeOnline/problem?id=1737
中等橄妆,遞推
http://acm.pku.edu.cn/JudgeOnline/problem?id=1821
中等,需要減少冗余計(jì)算
http://acm.zju.edu.cn/show_problem.php?pid=2561
中等祈坠,四邊形不等式的簡(jiǎn)單應(yīng)用
http://acm.pku.edu.cn/JudgeOnline/problem?id=1038
較難害碾,狀態(tài)壓縮DP,《算法藝術(shù)與信息學(xué)競(jìng)賽》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1390
較難赦拘,《算法藝術(shù)與信息學(xué)競(jìng)賽》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3017
較難慌随,需要配合數(shù)據(jù)結(jié)構(gòu)優(yōu)化(我的題目_
http://acm.pku.edu.cn/JudgeOnline/problem?id=1682
較難,寫(xiě)起來(lái)比較麻煩
http://acm.pku.edu.cn/JudgeOnline/problem?id=2047
較難
http://acm.pku.edu.cn/JudgeOnline/problem?id=2152
難躺同,樹(shù)形DP
http://acm.pku.edu.cn/JudgeOnline/problem?id=3028
難阁猜,狀態(tài)壓縮DP,題目很有意思
http://acm.pku.edu.cn/JudgeOnline/problem?id=3124

http://acm.pku.edu.cn/JudgeOnline/problem?id=2915
非常難

二.搜索

參考資料:
劉汝佳《算法藝術(shù)與信息學(xué)競(jìng)賽》
推薦題目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1011
簡(jiǎn)單蹋艺,深搜入門(mén)題
http://acm.pku.edu.cn/JudgeOnline/problem?id=1324
中等剃袍,廣搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=2044
中等,廣搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=2286
較難车海,廣搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=1945
難笛园,IDA,迭代加深搜索侍芝,需要較好的啟發(fā)函數(shù)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2449
難研铆,可重復(fù)K最短路,A
州叠】煤欤可參考解題報(bào)告:
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144
http://acm.pku.edu.cn/JudgeOnline/problem?id=1190
難,深搜剪枝咧栗,《算法藝術(shù)與信息學(xué)競(jìng)賽》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1084
難逆甜,《算法藝術(shù)與信息學(xué)競(jìng)賽》習(xí)題
http://acm.pku.edu.cn/JudgeOnline/problem?id=2989
難,深搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=1167
較難致板,《算法藝術(shù)與信息學(xué)競(jìng)賽》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1069
很難

三. 常用數(shù)據(jù)結(jié)構(gòu)

參考資料:
劉汝佳《算法藝術(shù)與信息學(xué)競(jìng)賽》
《算法導(dǎo)論》
線段樹(shù)資料:
http://home.ustc.edu.cn/~zhuhcheng/ACM/segment_tree.pdf
樹(shù)狀數(shù)組資料
http://home.ustc.edu.cn/~zhuhcheng/ACM/tree.ppt
關(guān)于線段樹(shù)和樹(shù)狀數(shù)組更多相關(guān)內(nèi)容可在網(wǎng)上搜到
后綴數(shù)組資料
http://home.ustc.edu.cn/~zhuhcheng/ACM/suffix_array.pdf
http://home.ustc.edu.cn/~zhuhcheng/ACM/linear_suffix.pdf
推薦題目
http://acm.pku.edu.cn/JudgeOnline/problem?id=2482
較難交煞,線段樹(shù)應(yīng)用,《算法藝術(shù)與信息學(xué)競(jìng)賽》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1151
簡(jiǎn)單斟或,線段樹(shù)應(yīng)用矩形面積并素征,《算法藝術(shù)與信息學(xué)競(jìng)賽》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3225
較難,線段樹(shù)應(yīng)用,可參考解題報(bào)告
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1233
http://acm.pku.edu.cn/JudgeOnline/problem?id=2155
難御毅,二維樹(shù)狀數(shù)組根欧。
http://acm.pku.edu.cn/JudgeOnline/problem?id=2777
中等,線段樹(shù)應(yīng)用端蛆。
http://acm.pku.edu.cn/JudgeOnline/problem?id=2274
難凤粗,堆的應(yīng)用,《算法藝術(shù)與信息學(xué)競(jìng)賽》中有解答
http://acm.zju.edu.cn/show_problem.php?pid=2334
中等今豆,左偏樹(shù)嫌拣,二項(xiàng)式堆或其他可合并堆的應(yīng)用。
左偏樹(shù)參考 http://www.nist.gov/dads/HTML/leftisttree.html
二項(xiàng)式堆參見(jiàn)《算法導(dǎo)論》相關(guān)章節(jié)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1182
中等晚凿,并查集
http://acm.pku.edu.cn/JudgeOnline/problem?id=1816
中等亭罪,字典樹(shù)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2778
較難瘦馍,多串匹配樹(shù)
參考: http://home.ustc.edu.cn/~zhuhcheng/ACM/zzy2004.pdf
http://acm.pku.edu.cn/JudgeOnline/problem?id=1743
難歼秽,后綴數(shù)組
http://acm.pku.edu.cn/JudgeOnline/problem?id=2774
較難,最長(zhǎng)公共子串情组,經(jīng)典問(wèn)題燥筷,后綴數(shù)組
http://acm.pku.edu.cn/JudgeOnline/problem?id=2758
很難,后綴數(shù)組
可參考解題報(bào)告
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1178
http://acm.pku.edu.cn/JudgeOnline/problem?id=2448
很難院崇,數(shù)據(jù)結(jié)構(gòu)綜合運(yùn)用

四.圖論基礎(chǔ)

參考資料:
劉汝佳《算法藝術(shù)與信息學(xué)競(jìng)賽》《算法導(dǎo)論》《網(wǎng)絡(luò)算法與復(fù)雜性理論》謝政
推薦題目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=2337
簡(jiǎn)單肆氓,歐拉路
http://acm.pku.edu.cn/JudgeOnline/problem?id=3177
中等,無(wú)向圖割邊
http://acm.pku.edu.cn/JudgeOnline/problem?id=2942
較難底瓣,無(wú)向圖雙連通分支
http://acm.pku.edu.cn/JudgeOnline/problem?id=1639
中等谢揪,最小度限制生成樹(shù),《算法藝術(shù)與信息學(xué)競(jìng)賽》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=2728
中等捐凭,最小比率生成樹(shù)拨扶,《算法藝術(shù)與信息學(xué)競(jìng)賽》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3013
簡(jiǎn)單,最短路問(wèn)題
http://acm.pku.edu.cn/JudgeOnline/problem?id=1275
中等茁肠,差分約束系統(tǒng)患民,Bellman-Ford求解,《算法藝術(shù)與信息學(xué)競(jìng)賽》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1252
簡(jiǎn)單垦梆,Bellman-Ford
http://acm.pku.edu.cn/JudgeOnline/problem?id=1459
中等匹颤,網(wǎng)絡(luò)流
http://acm.pku.edu.cn/JudgeOnline/problem?id=2391
較難,網(wǎng)絡(luò)流
http://acm.pku.edu.cn/JudgeOnline/problem?id=1325
中等托猩,二部圖最大匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=2226
較難印蓖,二部圖最大匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=2195
中等,二部圖最大權(quán)匹配
KM算法參考《網(wǎng)絡(luò)算法與復(fù)雜性理論》
http://acm.pku.edu.cn/JudgeOnline/problem?id=2516
較難京腥,二部圖最大權(quán)匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=1986
中等赦肃,LCA(最近公共祖先)問(wèn)題
參考Tarjan's LCA algorithm 《算法導(dǎo)論》第21章習(xí)題
http://acm.pku.edu.cn/JudgeOnline/problem?id=2723
較難,2-SAT問(wèn)題
參考:http://home.ustc.edu.cn/~zhuhcheng/ACM/2-SAT.PPT
http://acm.pku.edu.cn/JudgeOnline/problem?id=2749
較難,2-SAT問(wèn)題
http://acm.pku.edu.cn/JudgeOnline/problem?id=3164
較難摆尝,最小樹(shù)形圖
參考《網(wǎng)絡(luò)算法與復(fù)雜性理論》中朱-劉算法

五.數(shù)論及組合計(jì)數(shù)基礎(chǔ)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1811
簡(jiǎn)單温艇,素?cái)?shù)判定,大數(shù)分解
參考算法導(dǎo)論相關(guān)章節(jié)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2888
較難堕汞,Burnside引理
http://acm.pku.edu.cn/JudgeOnline/problem?id=2891
中等勺爱,解模方程組
http://acm.pku.edu.cn/JudgeOnline/problem?id=2154
中等,經(jīng)典問(wèn)題讯检,波利亞定理
http://cs.scu.edu.cn/soj/problem.action?id=2703
難琐鲁,極好的題目,Burnside引理+模線性方程組
http://acm.pku.edu.cn/JudgeOnline/problem?id=2764
較難人灼,需要數(shù)學(xué)方法围段,該方法在《具體數(shù)學(xué)》第七章有講
http://acm.pku.edu.cn/JudgeOnline/problem?id=1977
簡(jiǎn)單,矩陣快速乘法

轉(zhuǎn)載自CSDN-ACM基本算法分類(lèi)投放、推薦學(xué)習(xí)資料和配套習(xí)題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奈泪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子灸芳,更是在濱河造成了極大的恐慌涝桅,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烙样,死亡現(xiàn)場(chǎng)離奇詭異冯遂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)谒获,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)蛤肌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人批狱,你說(shuō)我怎么就攤上這事裸准。” “怎么了精耐?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵狼速,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我卦停,道長(zhǎng)向胡,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任惊完,我火速辦了婚禮僵芹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘小槐。我一直安慰自己拇派,他們只是感情好荷辕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著件豌,像睡著了一般疮方。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上茧彤,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天骡显,我揣著相機(jī)與錄音,去河邊找鬼曾掂。 笑死惫谤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼庄岖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蝴猪?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蛔糯,失蹤者是張志新(化名)和其女友劉穎拯腮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蚁飒,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年萝喘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了淮逻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阁簸,死狀恐怖爬早,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情启妹,我是刑警寧澤筛严,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站饶米,受9級(jí)特大地震影響桨啃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜檬输,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一照瘾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丧慈,春花似錦析命、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)簇搅。三九已至,卻和暖如春软吐,著一層夾襖步出監(jiān)牢的瞬間馍资,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工关噪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸟蟹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓使兔,卻偏偏與公主長(zhǎng)得像建钥,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子虐沥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容