請問將《演算法競賽入門經典及訓練指南》的內容全部學完並理解需要多長時間,能達到什麼水平(請看描述)謝謝?

我是一名九年級學生,很喜歡OI,也學了挺長時間。因為以前沒什麼見識,不知道自己學習新演算法而只是一味複習簡單的知識所以水平比較差(圖論會一點點,dp只會背包 )。

最近買了劉汝佳的演算法競賽入門經典和訓練指南,突然發現自己有那麼多不會的內容。我希望能進省隊(高中時),也想通過OI上個好大學,請問將這兩本書吃透大約要多少時間,如果各位有這麼做過或是有這麼做的同學,請問他們都達到了什麼水平,這兩本書到底有沒有幫助呢?謝謝!

附加:一個一直好奇的問題,浙江等強省似乎初中省隊拿牌都不算稀罕,高中的金牌的更是不勝其數,那他們到底是怎麼學的呢?

第一次知乎提問就有這麼多人回答,太開心啦,謝謝大家


很高興能為你指路,我初學OI的時候就是以這兩本書為基礎的,希望接下來的內容能幫到你。

首先,《演算法競賽入門經典》我一般稱為紫書,而《訓練指南》一般稱為藍書(也有人叫白書)。

如果你學完了這兩本書(除去紫書的第12章,這部分太難而且太偏),並且能自主完成一定難度的習題的話,在弱省(河南,江西,山西,雲南等地),是完全可以進入省隊的,並且水平至少能在NOI中獲得銅牌。而在非弱省(江蘇,浙江,福建,山東等地),僅靠這些知識就想進入省隊是遠遠不夠的。

就我個人而言,我是HA省的OIer,在中考結束之後(16年7月)開始學習紫書的,大約花了4個月的時間,粗略地學習完了紫書前11章的內容。這裡我說「粗略」,是因為這一段時間急於準備NOIp,需要快速補充大量的知識,學習不會的知識點,因此我只是學習完了紫書前11章的所有例題和講解部分,甚至倉促到沒能自己實現每一道例題。在這種情況下,沒有大量的練習作為基礎,就只能說是了解了最基本的一些知識點(比如Floyd,Dijkstra演算法),而真正在考場上做題的時候,根本沒有辦法靈活運用這些知識,就是平常所說的「智商不夠」,「知識點都會而做不出題」的情況。

NOIp2016之後,我開始學習藍書,並且有計劃地針對知識點進行大量的練習,比如學習完基礎線段樹之後,就到網上搜索線段樹的習題,練習至少10道(三到四天)之後再繼續學習下一個知識點。我認為在初學階段,這種學習方法是非常高效的,可以很快幫你掌握住各種演算法的常見應用情況和使用套路。學習藍書的過程中我停課了一整個學期,所以學習進度比較快,習題也做的不少,大約用了5個月學完了藍書,這就到了17年的4月,馬上就要省選了,時間剛好夠用。如果題主沒有大量的時間的話,也可以考慮以犧牲一部分練習為代價,快速掌握住省選要求的知識點。

其實這些遠遠不夠,正如其他答主所說的,紫書和藍書的很多東西已經過時了,需要到網上學習書上沒有的新知識點(比如莫隊,莫比烏斯反演,歐拉篩,後綴自動機)。這裡我推薦UOJ群,UOJ的網址是uoj.ac,這個群裡面都是高水平的大佬,學術氛圍挺不錯的,問問題經常有人解答(當然是那種不是特別水的問題,太水的入門問題也沒人理的=.=)。如果題主要學習書上沒有的演算法,一是推薦按照hzwer的博客(http://hzwer.com)上面列出的演算法進行學習,二是廣泛地刷題,遇到沒學過的演算法就去學一學。如果題主要針對某一個特定知識點進行練習的話,比如後綴自動機,在網上搜「BZOJ 後綴自動機 習題」就好(其實大多數也都是來自hzwer的博客)。

上面這些扯得有點遠了,題主現在還是初學,並且時間還很長(其實時間也不長,因為還要面對中考),我推薦題主先花時間把紫書前11章學紮實,即配合著練習題一起學,不要像我當初一樣刷的太快,基礎沒打牢。還有,紫書和藍書的習題難度頗大,對新人很不友好,新手刷題推薦洛谷(https://www.luogu.org),這上面基礎題還是非常多的,試煉場裡面的習題也可以參考著來做。

17年4月河南省選,我完全打暴力進了河南省隊,之後的時間就是四處集訓,自己找雜題做,學習新的知識點,這時候也就可以考慮做做這兩本書自帶的習題了,因為難度真的挺大的。雜題的話,我推薦http://codeforces.com,http://atcoder.jp,http://www.lydsy.com/JudgeOnline 等網站,這些OJ的題目質量普遍比較高。這時候應該注重鍛煉思維,做那些「會知識點而不會做題」的題。

多在群里交一些朋友也是很重要的,推薦UOJ和LOJ群(uoj.ac 和 loj.ac)。必要時可以互相提供幫助,以後在冬令營等活動面基的時候也有人一起玩。

現在只能想到這麼多了,有空了繼續補充。


我是弱省的蒟蒻自學黨,還是個新人就退役了(哭,也是啃這兩本書…

說說自己的看法吧,僅供參考!

首先,這兩本不適合純自學,因為有些小的知識點在用卻沒有講解,我是看其它資料、博客、題解以及騷擾dalao進行補充學習。很多dalao把這兩本當作「字典」,因為到了dalao的境界,這些都是基礎……

如果進隊,這兩本肯定是不夠,反正我認識的隊爺dalao知識面實在是廣,其次一定要刷題,還要一步一個腳印,充分利用時間,進隊dalao刷題量都是以千為單位……

另外計劃要合理,我就是時間短而且計劃安排的不好然後導致自己初賽都GG。

Menci大佬的一篇文章,很有意義https://www.zhihu.com/question/63834934/answer/222953809

希望你去一個好高中,那樣會有一個厲害教練以及一堆厲害的學長學姐。

加油!祝你夢想成真!

---來自蒟蒻


個人覺得這兩本書里無論是例題還是練習題都是很好的(然而最近才開始看題……)。作為教材的話,感覺它不夠系統,把每個知識點根據難度分散在兩本書里,見仁見智吧。然而,它的代碼風格比較奇特,簡潔但一般人很難想到,可讀性不是太強。

至於神犇是怎樣煉成的,由於本人蒟蒻,這個問題不知如何回答。

以上。


跪初中神犇

我太垃圾了沒資格說話啊,但是被阮大爺邀了就搶答一下

首先不用太刻意考慮多久學完的問題,這個對每個人都不一樣

天賦高的人很快就學完了,但是如果一定時間內學不完而強行趕進度的話不是揠苗助長么

所以把知識點理解到位,不要太關注進度(當然也別太慢了,在zj省九年級好像有點晚?

其次關於看完這兩本書能達到什麼水平,這個是很難說的

因為正如我在很多回答里說的那樣,OI更多考察的是思考和解決問題的能力

所以只是把知識點學完的話好像真難取得好成績

不過訓練指南有很多好例題,多獨立思考例題的話實力應該能達到比較好的水平

然而我估計這些在zj省是遠不夠的

你還需要自己再做更多的題,注意要盡量獨立做

(當然要是太長時間做不出來以至大大影響效率就要看題解了

至於怎麼在zj省佔得一席之地……

這個問題已經大大超出我的水平了……

我就祝你學有所成吧

就醬


相關:弱省OI退役選手,現在在大西北準備打ACM

這麼回答你吧,這本書在很多大學ACM隊都是被奉為教材的。書裡面的內容的確很好。

但是,注意,但是!

書裡面的代碼千萬不可以照搬!

有些代碼可能不是最好的,要靠你自己學習的同時去理解,消化,不要全數照搬。

另:自學可以看看各位大牛的博客,比如CA的啊,hzwer啊。

祝你oi之路順利~


占坑,NOIp以後答


不要看目錄。。。好多東西都在內容里。。。從頭到尾看一遍後整理一下知識點都在哪然後當字典用就行了。。。


推薦閱讀:

在 OI 中,賽後發現評測數據存在明顯的漏洞,是否應該更改數據重新評測?
「羅馬法官問題」的最佳策略是什麼?
oi里有什麼優秀的調試技巧?
為什麼完全聽不懂冬令營講課的蒟蒻還要去CCF NOI 冬令營?
在國際奧賽中取得好成績的那些大牛們都很愛賣萌嗎?怎樣利用學術賣出一個高格調的萌?

TAG:演算法 | OI | 演算法與數據結構 | NOI | NOIP |