標籤:

哪裡能找到一些簡單的演算法競賽題?


我來試著回答一下這個問題。

Hash Table Problem - 5183

ST Table Problem - 3183

樹狀數組單點修改區間查詢 Problem - 1754

樹狀數組區間修改單點查詢 Problem - 1608

樹狀數組區間修改區間查詢 Problem - 3468

線段樹單點修改區間查詢 Problem - 1754

線段樹區間修改單點查詢 Problem - 1608

線段樹區間修改區間查詢 Problem - 3468

線段樹合併 Problem - 3667

線段樹掃描線 Problem - 1542

線段樹區間GCD維護 Problem - 5726

李超線段樹 Problem - 1568

主席樹 Problem - 4729

Splay Problem - 3487

Treap Problem - 4585

替罪羊樹 Problem - 3065

樹鏈剖分 Problem - 3804

Link/Cut Tree Problem - 5398

K-D Tree Problem - 4400

塊狀鏈表 Problem - 4366

莫隊演算法 Problem - 5381

樹上莫隊演算法 Problem - COT2

左偏樹 Problem - 3031

堆 Problem - 3673

並查集 Problem - 1272

帶權並查集 Problem - 3047

鏈表 Problem - 1413

雙向鏈表 Problem - 4699

雙端隊列 Problem - 5929

棧 Problem - 1022

單調棧 Problem - 1506

最小生成樹 Problem - 2682

次小生成樹 Problem - 4756

最優比率生成樹 Problem - 2728

曼哈頓最小生成樹 Problem - 3241

斯坦納樹 Problem - 3311

完美消除序列 Problem - 1006

Huffman編碼 Problem - 2527

最小樹形圖 Problem - 2121

樹的重心 Problem - 4118

最近公共祖先 Problem - 2586

生成樹計數 Problem - 4305

二叉樹遍歷 Problem - 1710

割點 Problem - 4587

割邊 Problem - 4738

邊雙連通分量 Problem - 4612

點雙連通分量 Problem - 3394

強連通分量 Problem - 4635

Dominator Tree Problem - 4694

最大流 Problem - 3549

最小割 Problem - 3917

最小費用最大流 Problem - 1533

線性規劃 Problem - 5699

二分圖判定 Problem - 4751

二分圖最大匹配 Problem - 5093

最大獨立集 Problem - 1068

最大點權獨立集 Problem - 1565

2-SAT Problem - 4421

單源最短路 Problem - 3795

全源最短路 Problem - 3631

次短路 Problem - 1688

第K短路 Problem - 2449

差分約束 Problem - 4598

拓撲排序 Problem - 2647

歐拉迴路 Problem - 2894

最大團 Problem - 1530

穩定婚姻匹配 Problem - 1914

Dancing Links Problem - 3111

插頭動態規劃 Problem - 1693

區間動態規劃 Problem - 5900

環形動態規劃 Problem - 3506

樹形動態規劃 Problem - 2196

概率動態規劃 Problem - 4336

狀態壓縮動態規劃 Problem - 3920

整數劃分動態規劃 Problem - 5230

單調隊列優化動態規劃 Problem - 3401

斜率優化動態規劃 Problem - 2829

四邊形不等式優化動態規劃 Problem - 3516

01背包 Problem - 1171

完全背包 Problem - 4508

多重背包 Problem - 2844

混合背包 Problem - 5410

二維費用背包 Problem - 3496

分組背包 Problem - 1712

依賴背包 Problem - 1561

KMP Problem - 4763

Extended KMP Problem - 4333

Manacher Problem - 3613

Trie Problem - 1671

Aho-Corasick Automaton Problem - 2296

後綴數組 Problem - 1403

後綴自動機 Problem - 4416

後綴樹 Problem - 3518

巴什博弈 Problem - 2147

Nim遊戲 Problem - 2509

威佐夫博弈 Problem - 1527

樹上刪邊遊戲 Problem - 5299

Sprague-Grundy Function Problem - 4155

Pick定理 Problem - 3775

半平面交 Problem - 3761

旋轉卡殼 Problem - 3934

凸包 Problem - 1348

三維點積 Problem - 3692

三維叉積 Problem - 1174

三維凸包 Problem - 4266

仿射變換 Problem - 4087

歐拉篩法 Problem - 2161

歐拉函數 Problem - 4483

莫比烏斯反演 Problem - 4746

Miller-Rabin素數測試 Problem - 2138

Prime-counting Function Problem - 5901

Pollard"s rho整數分解 Problem - 3864

最大公約數 Problem - 1019

最小公倍數 Problem - 1108

擴展歐幾里得 Problem - 2669

乘法逆元 Problem - 1576

線性逆元 Problem - 5673

高斯消元 Problem - 3364

模線性方程組 Problem - 1573

異或線性基 Problem - 3949

行列式 Problem - 4305

容斥原理 Problem - 4135

置換群 Problem - 5495

Lucas定理 Problem - 3944

組合數取模 Problem - 3944

BSGS Problem - 2417

Extended BSGS Problem - 2815

快速沃爾什變換 Problem - 5909

快速傅里葉變換 Problem - 5307

自適應辛普森積分法 Problem - 1724

Bell數 Problem - 2512

Catalan數 Problem - 1134

逆序對 Problem - 4911

九餘數定理 Problem - 1163

抽屜原理 Problem - 5776

康托展開 Problem - 1430

蔡勒公式 Problem - 2005

錯排公式 Problem - 1465

進位轉換 Problem - 2031

高精度 Problem - 1042

快速冪 Problem - 1061

矩陣快速冪 Problem - 2604

母函數 Problem - 2110

深度優先搜索 Problem - 1518

記憶化搜索 Problem - 5001

廣度優先搜索 Problem - 1026

雙向廣度優先搜索 Problem - 3085

A* Problem - 1043

IDA* Problem - 1667

對抗搜索 Problem - 4597

最長不下降子序列 Problem - 1950

最長公共子序列 Problem - 1159

最長公共前綴 Problem - 4691

最大子矩陣 Problem - 4328

平面最近點對 Problem - 1007

平面最近圓對 Problem - 3124

貪心法 Problem - 1789

雙指針 Problem - 5672

二分法 Problem - 2199

三分法 Problem - 2298

二分答案 Problem - 4190

二分查找 Problem - 2141

CDQ分治 Problem - 4742

模擬退火 Problem - 2297

歡迎補充

不敢說在95%的題目中出現過,但是5%應該是有的吧(逃


這是人人追尋的東西,據我所知,還不存在


演算法競賽練習的話入門可以試試USACO的training。

有一些基礎/自學能力強也可以直接上手劉汝佳大神的「演算法競賽入門經典」,看完第十一章之後用「演算法競賽訓練指南」跟進。配合UVa和Live Archive的題目,也是一條不好走但是直通山頂的「捷徑」。每每看著汝佳大神三四十行就簡潔明了地實現了我需要上百行的代碼,都可以從中收穫很多。

不問why直接問how的都是耍流氓...演算法競賽需要「庫」么?

庫/模版確實很重要,但也不是所有題都可以用上庫/模版。比如動態規劃或者貪心演算法,與其說是教你如何計算的演算法,不如說是引導思維的思考方法。題型的不同變化,都需要編碼者一步步推導分析,想了一個大圈,最後可能只是寥寥幾行。而過程中的這份腦力的付出,並不是「庫函數」可以代替的。

當然,有些章節,比如數據結構(可以參考「訓練指南」一書的數據結構章)確實更「套路」些,倒是可以多準備些模版。不過缺乏訓練,做的題少,可能並不能領會到每個結構的妙處。比如為何自己優化了很久的「線段樹」並不是vjudge上最快的呢?可能別人理解了「樹狀數組」的區間更新,四十行就做了自己一百多行的工作,還跑得更快!即便是數據結構這樣滿是套路的章節,理解也是可以比套路更重要的。真的都學明白了的話,要庫函數又可以做什麼呢?

最後,無論庫/模版編寫的多麼精細,「庫」都很慢很不方便的,不如現場按需求寫的定製化程度高。我記得樓教主寫的回憶錄里也提到過他們最後決賽的時候,提前可以碰機器也沒有人打模版的。演算法都融匯在了心中,要模版可以...敲錯然後debug?


如果是面向就業的話,你可以參考這個List http://hihocoder.com/discuss/question/2822;

如果是面向競賽的話,網上的確有更多的List,你可以考慮把它們綜合一下。


最終還是決定先從AOJ的Introduction (Programming Challenge)開始。廢話少,最重要的是不需要先理解題意,直接給你名字了。雖然不多,但是先把這裡都實現完再找別的吧。


lintcode,在公司不能上LeetCode就刷一下這個


拿出演算法導論 把上面的代碼都實現一遍


《演算法競賽入門經典》


演算法競賽入門經典 劉汝佳


隨便找個oj

把題目按ac率由高到低排序

然後開始刷題


簡單的演算法競賽題,某種意義上是矛盾的。


你值得擁有


LintCode LeetCode都可以 想有趣一點的上ProjectEuler


寫競賽模板?搜一下poj訓練計劃,這個涵蓋面還是很廣的。

如果寫著玩,就演算法導論吧。


codeforces educational round..?..


codewar,每個題都有難度等級和標籤,還可以加入部落打怪升級。


推薦閱讀:

擔任ACM/OI競賽教練是怎樣一種體驗?
為什麼清華的交叉信息研究院或計算機系的本科生就能夠在理論計算機學科上發一大堆的論文?
女生面試 Google 會不會容易些?
如何評價中山大學vmatrix評測系統?
參加第五屆"圖靈杯"NEUQ-ACM程序設計競賽(個人賽)是什麼體驗?

TAG:ACM競賽 |