ACM入門指南

本文已經轉移到了:http://harryguo.me/2015/11/03/ACM-%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/java

什麼是ACM?

想必打開這篇博客的人已經知道什麼是ACM了吧,若是不知道,請自行百度或者谷歌算法

搞ACM須要學習什麼知識?

搜索引擎

這裏不是讓你設計一個搜索引擎,而是讓你學會正確使用搜索引擎,當你有任何不解的時候(包括閱讀下文),問問谷歌或者百度,這不僅是ACM才須要的技能。編程

一門編程語言

雖然如今編程語言總類繁多,有些OJ也支持多種語言,不過C++仍是搞ACM不二的選擇,另外最好也學會使用java,由於不管在什麼地方,什麼國家,什麼網站的比賽,C++和java都是支持的。ACM是算法的比拼,因此並不須要將編程語言鑽研過深,畢竟語言只是工具。編程語言

良好的英語

ACM是國際比賽,英文交流能力是無可後非的。英文差,可是想搞怎麼辦?對於這樣的問題,個人答案是:請自行學習英語,世上無難事,只怕有心人。工具

數學能力

算法算法,不管怎樣都脫離不了數學。我認爲,幾何學、線性代數、離散數學、初等數論和微積分是必須掌握的。太多了怎麼辦?這點請放心,你能夠在不斷的比賽中積累這些知識。學習

在哪裏能夠訓練/作題? 

能夠在OJ上訓練

全球有很是多很是多的OJ,即Online Judge,在線評測平臺,他們能夠將你的代碼進行在線評測,來判斷正誤。推薦的國內的OJ有CDOJ(電子科技大學),POJ(北京大學),HDUOJ(杭州電子科技大學),BNUOJ(北京師範大學)。網站

如何提交個人代碼

我不打算詳細講解,因此能夠的話,請看每一個OJ的F.A.Qs,英文怎麼辦?本身想辦法。搜索引擎

有沒有線上的比賽

國內的線上比賽有HDU的bestcoder,這個是有獎金的比賽,國外的推薦codeforces,會不按期的進行比賽,比賽的難度適合新手(英語較好),另外就是Topcoder,這個是至關有名的比賽,不過入手較爲困難,你能夠百度或者谷歌相關教程,這裏就不詳細解釋了。這些比賽都有着積分的規則,簡單說,你打得好,積分就會上漲,不然下跌。高排名老是被各大公司相中,如Google、阿里等,特別是Topcoder,在這裏的高排名至關有價值。設計

推薦的書籍?

英語我就不推薦了,本身想辦法。下列書籍中的任何習題,都推薦去完成。code

編程語言類

《C++大學基礎教程》做者是Deitel,這個做者所著的編程書籍都是值得學習的。

算法入門類

《挑戰程序設計》,《算法競賽入門經典》做者劉汝佳。

數學類

《組合數學》,《算法導論》,《具體數學》

常見的問題

算法沒法理解

多看書,多想,細細琢磨,別人能懂,你也能夠。問問老師同窗,周圍的大牛確定有人知道。

這道題怎麼作,徹底不會

碰到不會的題是很正常的事,此時你就須要搜索題解,怎麼搜索?固然谷歌百度。

那些傢伙爲啥那麼厲害

勤能補拙,每一個大神的背後都有着辛勤的付出。凡事靠堅持,每一個人都有着無限的潛能,也許你會看見比你更厲害的大神,但只要你努力,你就是下一個大神。

學習這個會不會佔用我不少時間

有得便有失,投入和專一是得到成績的充要條件。

最後的話

時間不會由於你的猶豫而止步,既然你決定了搞ACM,那麼就應當立馬開始行動,要知道有不少人已經在你的前面走了很遠。

相關文章
相關標籤/搜索