這個文章吧, 也不僅僅侷限於ACM訓練, 想學習數據結構和算法的朋友也可以看看.
學習編程
先安利一個知乎上的一個學習編程的專欄: 學習編程
裏面有博客推薦啊, 書籍推薦啊, 適合新手的項目啊, 感覺還可以.
ACM之路
入門
ACM Book //哈爾濱理工大學寫的, 講解關於acm競賽中常用的算法. 部分內容有錯誤, 要批判地學習.
數據結構與算法/Leetcode/Lintcode題解 //也是很好的電子書, 講解了常用的數據結構和算法, 還有oj上的實踐
hdu ACM Step //一章一章刷, 就像爬樓梯, 帶你走上人生巔峯, 第一章是基本的輸入輸出格式練習, 建議新手先把輸入輸出練了, 另外有些題目會有坑, 不要死磕.
OJ推薦
hdu //著名的杭電oj
優點: 題目多, 全.
經常有比賽(Best Coder, 原創題目)
缺點: 沒有題目分類
刷題建議: ACM Step可以刷一刷, 第11頁的題目是基礎編程題目適合新手刷.
不會的題目可以百度, 比如 hdu 1001
有能力的可以參加Best Coder, 找找比賽的感覺
另外可以百度 hdu題目分類.
環境說明: 支持C/C++ Java Pascal C#
51Nod
優點: 題目分類相對完整, (難度/類別).
有貪心和dp的教程.
提供測試數據, 可以看哪個測試點錯了.
可以查看別人提交的代碼.
每個月都有一次比賽, 難度較高, 原創題目, 比賽有獎品
51Nod好像已經開始要對接企業了, 所以你懂的.
缺點:下載測試數據需要積分(其實積分很好弄, 不必過於擔心)
沒有Rating
題目數量較少, 比賽頻度過低, 難度較高
環境說明:支持很多種編程語言
刷題建議: 有分類了還要啥建議
C語言網
優點: 題目難度較低, 適合新手
有文章, 視頻教程
貌似還打算開直播教學
沒有Rating
每月有比賽, 有獎品
缺點:測試數據太弱,
題目數量少
環境說明:僅支持Java和C/C++
刷題建議: 編程小白可以刷一刷, 走專業ACM的不建議刷
CodeForces //沒錯, 就是大名鼎鼎的cf, 不是鵝廠的槍戰遊戲
優點:比賽頻度較高(幾天一次)
比賽梯度設置合理, 有人人都能A的水題, 也有難題
可以查看別人提交的源碼
缺點:比賽時間很坑, 外國人的比賽, 有時差.
沒有題目分類
全英文, 對小白不友好.
環境說明: 支持多種編程語言
刷題建議: 按照比賽刷, 從易到難, 難的也別直接就不看了, 試試啊.
可以經常參加比賽, 找找感覺
LeetCode //傳說都是面試題
優點: 題目難度適中, 又是面試題, 如果臨近找工作, 可以刷這個
題目都有討論, 會有大神講解
缺點:全英文
國內訪問速度不是很快
環境說明: 支持多種編程語言
刷題建議: 暫無
hrbust //哈爾濱理工大學的OJ
刷題建議: 配合上面提到的ACM Book刷挺好的.
其它OJ
其它OJ我也沒用過, 所以不予評論. 你們可以自己試試去:
比如: POJ, 計蒜課, UVa, CodeVS, 洛谷, 牛客網, PAT
資源
揹包九講 //自行百度
鄺斌的ACM模板 //自行百度
算法與數據結構
編程之美: 微軟技術面試心得
Left-Leaning Red-Black Trees, Dagstuhl Workshop on Data Structures, Wadern, Germany, February, 2008.
其它內容
想到再補充吧(其實這樣說的話... 又不知道猴年馬月更新了...)
有啥問題可以右側微信聯繫我, 或者導航欄的關於小川