转acm入门
以下僅僅是本人個人的一點點想法,僅供參考,希望對于還沒有方向處于盲目階段的acmer新手會有所幫助。
1,買一本《算法導(dǎo)論》,先自己大概瀏覽一遍。
收藏acm網(wǎng)址導(dǎo)航http://dh.608088.com/收錄了國內(nèi)外各大OJ。
2. 注冊幾個OJ
acm.pku.edu.cn
www.608088.com
試著在上面做題,找AC人數(shù)最多的做,或者找自己會做的做,不會的一概不管。
遇到不會做的題目,盡量自己想,想不出可以看discuss, 也可以搜索,可以到acm社區(qū)(http://www.608088.com/category-4-1.html)查看解決報告。
3.
做到一定數(shù)量題目后(我的建議是100左右,當(dāng)然這個數(shù)字自己定,主要是怕做下面的分類有困難,如果你覺得做下面分類沒什么問題了,你可以不用做到100,直接做下面的分類)
做下面這個分類:
http://www.608088.com/show-2655-1.html
(這個分類又叫Poj水題,很多地方都有,poj分類很多,個人認為此分類最好,有層次感,內(nèi)容全面)
做到哪一塊不懂可以再看《算法導(dǎo)論》的相應(yīng)章節(jié),按順序做,盡量做
如果這一塊(如樹狀數(shù)組)覺得不熟練, 可以去搜索再多做這類型的題(如 關(guān)鍵字:poj 樹狀數(shù)組)
4
如果想在校賽(時間為每年5月中旬)取得好成績,最好要達到該分類中中級的水平
5
多做題,一定要多做題,每天至少(是至少)過個幾題(1題也行,但一定要做,天天做,有空就做)
6
如果搜到別人的代碼,不管這題你是過了還是沒過,最好都仔細讀讀,吸取其中寫的好的地方,尤其是新手,多看看別人的代碼很有好處
7
有問題不懂可以在acm群,acm社區(qū)問問題,因為都是自學(xué),交流很重要,在(且只有在)想不出來看不懂書網(wǎng)上又搜不到自己實在無法解決時,一定要多問,死纏爛打地問
8
有一定水平后,各個OJ,topcoder,所有的比賽都要關(guān)注,能做的比賽盡量做,不管剛開始你有多菜,一題都做不出來也要去參加。并在賽后總結(jié),盡量把能做的題目干掉。
9
所有的大牛都是從只會簡單題開始的,不管你現(xiàn)在多菜,只要你堅持,總有一天你會變成大牛。
10
我原來以為只有ACM會辛苦,后來和別人交流了,其實所有的專業(yè)比賽(計算機方面)都很辛苦,不僅辛苦,而且都需要很長時間,沒有任何比賽是你說隨便搞搞短時間就能出成績的,拼的都是內(nèi)功,成功沒有捷徑。
如果你選擇ACM,就一定要堅持,而且你必須放棄很多其他東西,不要什么都做什么都沒成績,有所得必有所失,路是自己選的,自己的未來自己負責(zé)。
?
?
?
?
我常感嘆到,學(xué)計算機的人是幸福的,因為在這個領(lǐng)域中有如此多的通俗易懂(相對來說)的經(jīng)典好書,你需要做的只是堅持把它們一本一本讀下去而已。學(xué)力學(xué)就沒有這樣的好事了(抱怨一下),除了論文就是論文,滿篇公式,晦澀堅深,真不是給人看的(雖然我也沒看過幾篇)。在這里列出一些我看過或者準(zhǔn)備看的算法書籍,以供參考。
1. CLRS 算法導(dǎo)論
算法百科全書,只做了前面十幾章的習(xí)題,便感覺受益無窮。
2. Algorithms 算法概論
短小精悍,別據(jù)一格,準(zhǔn)經(jīng)典之作。一個壞消息: 同算法導(dǎo)論,該書沒有習(xí)題答案。好消息:習(xí)題很經(jīng)典,難度也適中,只需花點點時間自己也都能做出來。不好也不壞的消息:我正在寫習(xí)題的答案,已完成前三章,還剩九章約二百道題,順利的話二個月之后發(fā)布。另有中文版名《算法概論》,我沒看過,不知道翻譯得怎么樣。如果有心的話,還是盡量看原版吧,其實看原版與看中文版花費時間不會相差很大,因為大部分時間其實都花費在做習(xí)題上了。
3. Algorithm Design 算法設(shè)計
很經(jīng)典的一本書,很久之前看的,遺憾的是現(xiàn)在除了就記得它很經(jīng)典之外其它都忘光了。
4. SICP 計算機程序的構(gòu)造和解釋
六星之書無需多言,雖然這不是一本講算法的書,但看完此書有助于你更深入的理解什么是遞歸。我一直很強調(diào)習(xí)題,看完此書后你至少應(yīng)該做完前四章的太部分習(xí)題。否則那是你的遺憾,也是作者的遺憾。
5. Concrete Mathematics 具體數(shù)學(xué)
有人說看TAOCP之前應(yīng)該先弄清楚這本書的內(nèi)容,要真是如此的話那我恐怕是看不到TAOCP了。零零碎碎的看了一大半,很多東西都沒有時間來好好消化。如果你是剛進大學(xué)不久的本科生,有著大把的可自由支配時間,那你幸運又幸福了,花上幾個月時間好好的讀一下此書吧,收獲絕對大于你的期望值。
6. Introduction to The Design and Analysis of Algorithms 算法設(shè)計與分析基礎(chǔ)
很有趣的一本算法書,有許多在別的書上找不到的趣題,看完此書絕對能讓你大開眼界,實在是一本居家旅行,面試裝逼的必備佳作。
7. 編程之美--微軟技術(shù)面試心得
雖說是一本面試書,但如果把前面十幾頁扯掉的話,我更愿意把它看作是一本講解題思維的算法小品。在書中,作者通常是給出一個平常解法,然后再一次又一次的優(yōu)化改進,你可以很清楚的看到基本的算法設(shè)計思想是如何得到運用以解決實際問題的。如果你已經(jīng)有了一些算法的基礎(chǔ),看完本書應(yīng)該能使你的算法應(yīng)用能力得到一定的提高。另外,本書生動有趣,也同樣適合于初學(xué)者。
8. Fundamentals of Algorithmics 算法基礎(chǔ)
也是很久之前在學(xué)校圖書館借來看的,內(nèi)容記不太清楚了,只隱約記得此書的動態(tài)規(guī)劃章節(jié)猶為出彩。應(yīng)該是很經(jīng)典的一本書,個人以為足以和算法導(dǎo)論等所謂當(dāng)世經(jīng)典平分秋色,但是怎么好像被人提到的不多,或許是我孤陋寡聞了。
9. How to solve it 怎樣解題
二十世紀(jì)最偉大的數(shù)學(xué)思想家之一波利亞的力作,講一般性的解題方法:怎么認識問題,怎么轉(zhuǎn)換問題,怎么解決問題,如何在問題中得到啟發(fā),如何找到一個通往答案的方向。
10. Programming interviews exposed 程序員面試攻略
一本消遣之作。個人以為要比國內(nèi)的某“XXX面試寶典”純粹一些,至少也有一些啟發(fā)性的內(nèi)容,而不單單是面試題解庫。
11. Programming Pearls 編程珠璣
學(xué)習(xí)算法不僅需要像Alogrithms,算法導(dǎo)論這樣的重量級的內(nèi)功心法,像《編程之美》、《編程珠璣》這樣的輕量級的輕功身法也必不可少。前些年網(wǎng)上不是很流行像“給你10億個數(shù),找到最大的n個”或者“給你10億個數(shù),找出現(xiàn)次數(shù)最多的那個數(shù)”之類的百度面試題嗎?看了此書你就知道怎么解決了。相比于《編程之美》來說,本書中的示例技巧性略低一些,但是也更有實際應(yīng)用價值一些。
12. 算法藝術(shù)與信息學(xué)競賽
如果算法導(dǎo)論是九陽神功,那這本無疑就是九陰真經(jīng)。本書是專為參加一些諸如ACM之類程序設(shè)計比賽的同學(xué)而寫的,江湖人稱“黑書”。里面講的都是一些在編程比賽中常用的算法、數(shù)據(jù)結(jié)構(gòu),以及一些數(shù)論和計算幾何等。我雖然并不搞競賽,但也從此書中受益頗多。
13. An Introduction to Probability Theory and Its Applications
準(zhǔn)備看的,現(xiàn)在才發(fā)現(xiàn)概率論有多么重要,可惜本科的時候沒有好好學(xué)。前不久一個同學(xué)問我個問題,我半天弄了一個程序給他,他說:這里就不是相關(guān)系數(shù)么,Excel一下就完事!我暈,我還真不知道那就是相關(guān)系數(shù)。
14. Numerical Analysis
這本的作者是Richard L. Burden,J. Douglas Faires
數(shù)值分析,討論各種數(shù)值算法,比如插值、擬合、積分、微分方程的求解、線性和非線性方程組求解等。準(zhǔn)備詳細看。
15. TAOCP 計算機程序設(shè)計藝術(shù)
傳說中的TAOCP,說的人多,看的人少。TAOCP四卷堪稱是算法藏經(jīng)閣中的易筋經(jīng)或者是少林七十二絕技。天下武學(xué),盡出少林,天下算法,盡出TAOCP也。這點你可以順便翻開一本算法書看看他的引用文獻就知道了。我只讀了第四卷的部分章節(jié),前三卷暫時還沒敢看,還在讀書計劃表中被無限期擱置。
轉(zhuǎn)載于:https://www.cnblogs.com/gracestoney/archive/2010/06/26/1765784.html
總結(jié)
- 上一篇: db:migrate
- 下一篇: LVS+Heartbeat+Ipvsad