轉自親學長的總結html
聲明:本文是寫給弱校ACM新手的一點總結,受自身水平和眼界所限,不免會有一些我的主觀色彩,但願大牛指正算法
感謝@Wackysoft 、@哇晴天 、 @ 一切皆有可能1 的指教,現根據這些建議,文章已進行修改編程
先簡單介紹一下本身:數組
高中在OI打過一段時間醬油,大一後暑假進入ACM集訓隊,到大三寒假,總共一年半的ACM生涯。數據結構
總共參加了四場比賽:區域賽一銀(2013長春)一銅(2013杭州)一鐵(2012金華),省賽狗血一銀(2013山東)學習
總共有過5位隊友優化
我的感受SDUST ACM集訓隊的最大缺點就是經驗得不到傳承,幾乎每一屆都是從零開始,咱們11級更是這樣編碼
下面是我一年半以來根據日常對11級隊員習性的瞭解和各個隊員最後的興衰得出的一些經驗,固然這些規律是到最後才發現的,要是早就知道並一直堅持的話,我也不至於如今這麼水-_- !url
不適合搞ACM的類型:spa
書呆子類型(包括一部分學霸):把ACM當成學算法,算法步驟一個一個都記得很熟,刷題時一個題一個題的摳,不管是看書或刷題都很是認真,不少學霸專業課能學得很好,但不必定適合搞ACM。我只想說,好好的學你的專業課去吧,你丫的搞什麼ACM?
還有就是數學思惟能力不好的,學數學就是記公式背定理,典型的「文科生」
我見過ACMer的常見幾類:
天才型:(這個在我們學校基本不存在),因此就不用考慮了-_- !
依賴題解型:思考問題一想不出來了就想上網搜題解,缺少獨立思考的過程,把題解看懂就了事,「不求甚解」,沒有本身深刻鑽研的勁頭,「伸手黨」,刷題不少但思路很板,這種人面對新題很難有本身的想法,通常不會成爲主力
思路型(也是我的比較推薦的類型,可能也和我的性格有關):刷題較慢,喜歡獨立思考(尤爲是思路題),不少時候本身AC之後才查題解,爲的是拓展思路,尋找不一樣的解法,固然不是一點不看題解,有些題目不看題解是作不出來的,有的技巧不看題解也不會知道,只是沒有依賴題解,每一個題目都是認真思考後肯定實在不能作再去查題解,且刷完一個專題花一些時間去總結, 也喜歡看別人博客裏的專題總結,這種人早期學習進度較慢,比賽屢屢受虐,是別人眼裏的弱渣。後來隨着本身獨立思考量和經驗的累加優點逐漸顯現出來,「有自 己的想法」,基礎打好了之後一直在鑽研難題(第二本書上本身負責的專題的難題能獨立刷個大部分),最後成爲隊裏的主力(不過一些博友說這種人後期很難突破 極限,沒有深刻研究理論,沒有站在巨人的肩膀上,好吧,只能說咱們太弱,還沒到那個階段,或者這個也要看他練的專項吧)。
理論型:數學等理論研究的很深,讀過幾本有深度的理論書,數學思惟很強,金牌隊伍確實須要這樣的人,我身邊還沒出現過這樣的人,我我的感受能力得先 達到必定程度(好比說銀牌)再去深刻研究這些理論,要不你可能吃不消,能力未到就算你看懂了也未必會運用。我所見到的都是能力未到的、剛開始接觸這一部分 就拋開lrj的書在研究其餘理論書的人,好比說第二章剛開始刷就在看組合數學和數論方面的厚厚的書,結果大都摔死了。我的建議:若是你的目標是金牌或更 高,後期隊裏至少要有一個深刻去研究這些理論的,若是你的目標是銀牌或更低,讀讀國家集訓隊論文這些理論衍生品就夠了,這種人強隊必須得有但不建議早期就 搞。
通常型:同大多數人同樣,循序漸進的刷題、看書、看博客,寫博客通常不去總結或不多總結(寫題解基本就寫一兩句話再貼上代碼就完事,我只想說你這樣的題解還不如不寫),眼界僅限於手頭的書,不會主動去尋找資源,沒有花樣(提起花樣,我就有一個效率潔癖、不少時候在OJ上作題、不少題目就算AC了我也會一直去優化,直到優化到不知道再怎麼去優化,時間排名前幾,這樣雖然浪費時間,可是收穫仍是挺多的),估計到最後很難成爲最突出的那幾個,就看我的努力程度和我的天賦了,除非你很是拼或有點天賦或堅持的時間比別人長。
我的感受 ACM水平=Σ思考量*難度 + 經驗的累積 + 一點點天賦
而不是簡單的題數的累積,固然題數至少要達到必定量才能入門,只看書不刷題=紙上談兵
ACM是打着算法的幌子在比腦子
依賴題解是練不出來「腦子」的,那樣的思惟是別人給你的,沒有本身的想法,獨立思考才能提升本身的戰鬥力,面對中難題才能「有本身的想法」
不少時候題目涉及到的算法很簡單,可是思路很難,或者根本就不涉及算法,所以 ACM!=算法競賽
但這並不表明你能夠不學算法只刷題,學習算法能夠很好的鍛鍊你的思惟能力,放棄算法你很難走遠
感受本身的語言較無力,這裏引用《3xian之所在》的幾段話:
「必需要看到,玩ACM跟玩算法是不一樣的事情,ACM是考 驗智慧、考驗綜合素質的,我敢大言不慚地說,ACM玩得好甚至不須要去刻意學什麼算法。雖然咱們偶爾見到一些題目須要一些成熟的經典的算法,那些題目是我 喜歡的題目,可是那些題目屬於最垃圾的ACM題目。另外一角度來講,不少人以爲本身ACM出成績了就表明本身算法不錯了,這是一種錯誤觀念,當你深刻任何一 個方向的算法領域的時候,你會發現ACM那點東西過小兒科了,太不入流了。說白了,ACM是打着算法的幌子來讓你們比腦子。」
「對於ACMer來講,Matrix67早已放過話,「USACO你老老實實一個字也別看解題報告,作完你就無敵了」。咱們隨處可見一些作了不少不少題目實力還上不去的人,此類八成是是有看解題報告的習慣,其中包括想都沒想就衝進discuss裏頭瞄來瞄去。」
「08年秋天,ACM圈子冒出了一個博客點擊率很高的家 夥,叫zfy。他的出現讓很多人長了見識,不得不表示稱讚。原本他是一個做風不錯的人,可是在必定程度上讓一些人養成了新的壞習慣——作不出題就找論文, 這跟找解題報告有什麼區別呢,就名字不一樣。咱們學校確定也有人以爲,三鮮是否是腦子被驢舔了,作個破題用不用看那麼多論文。事實上我基本不在作題的時候碰 論文,假若二者糅合在一塊兒,最終結果基本就是這頭感覺不到論文的內涵,那頭題目也白作了。」
「時常在網上看到不少人比完賽長吁短嘆,也有些人號稱「本 來有奪金的實力」、「沒發揮好」。我曾經也有段時間神勇地跑去作掉不少難題,一度覺得本身到了登堂入室的水平,後來發現徹底不是這麼一回事。真正的高手是 什麼樣的,他們不須要吃飯時候的冥想,不須要靠洗澡時候的靈光一閃,他們比賽的時候坐在那兒就能熟練地作出各類難題,他們在讀錯題的時候能保證成績,在數 據錯的時候能保證成績,在沒人敢提交的時候果斷提交,在比賽快結束的時候冷靜編碼。簡單來講就是,他們不只僅是作題能力強,而更是綜合素質強。比賽以後說 太多「原本」、「若是」的人,屬於心理素質欠佳,這是綜合素質重要的一塊,也是阻礙長進的一塊。所以,當你沒有達到預期的目標,根本就不該該想着你丟了一 塊牌,而應該想一想本身是否真的值那一塊牌。」
「國內的ACM圈子老是表現出一種浮躁的風氣,儘管不缺少 超強的人,但強人都很低調,或者說,強校更可能是閉門造車。能夠去看看國內ACM最火的POJ論壇,琳琅滿目的欠揍的東西:求/貼數據的、求/貼代碼的、叫 人家來查錯的、日題目的、炫耀的、留名的、二三流人物相互膜拜的。看看站內信,多少是求代碼的(個人原則是問我思路的必定悉心回答,要代碼的一概無視)。 再看看百度到的解題報告,多少是相互抄襲不求甚解的。」
借用GaoYusong大神的一句話「不要看解題報告,實在不會,作其它的,而後過段時間就想一想,解題報告是給會這個題的人看的,拿來比較。」
遠離題解不是不看別人的東西,那樣單幹屬於閉關鎖國,除非你是天才,不然不會搞出什麼名堂來。遠離題解是讓你不要對題解產生依賴,不要一想不到思路就去查題解,最好是實在沒有思路再去看,這個度本身去衡量。尤爲對新手來講,懂得知識很是少,不少時候根本無從下手,能夠適當的去查題解。別人的經驗仍是要借鑑的,多看別人的總結,尤爲是一些優秀的博客。
Codeforces和Topcoder很重要!
最專業的衡量你的ACM水平的不是你的題數,不是你的省賽成績,不是你的區域賽成績,是Codeforces和Topcoder的rating
由於比賽成績受不少方面影響,且一年只有那一兩次機會,成績不必定能表明本身的水平
可是Codeforces和Topcoder能夠,這兩個比賽都是國際性的,幾天就會有一場比賽,全世界的ACMer都在上面作題,題目質量很是值 得確定,且上面的題目通常都是純思路題,不多涉及算法,能很好的體現和鍛鍊你的思惟能力,很重要的一點,你能夠看別人提交的代碼,能夠找找世界冠軍級的人 的代碼看看,找找差距
何時能把Codeforces打黃了,你就能夠絕不猶豫的說你是SDUST ACM裏最牛逼的
Codeforces和Topcoder rating = 最專業的思惟能力+編程能力和速度的衡量
其實第一本書的東西沒必要全看,刷個大部分就好了,第一本是基礎,提升仍是靠第二本書,其中第一章必刷,若是有能力,第三章也必刷,其餘的裏面再選一章搞就能夠了,第二本的練習題頗有價值,若是你有能力,建議不要放過裏面的難題(能獨立完成收穫到的確定是最多的)
另外,我也很是推薦《挑戰程序設計競賽》這本書,因爲我快寒假的時候纔買這本書,退役之後只是寒假裏看了一部分,發現這本書很不錯,不少地方講的比 lrj的書更通俗易懂,好比說後綴數組,我看一遍就能看懂,但不少地方不如lrj講的有深度,這三本書你們選擇性閱讀吧。據說上海交大的幾本書也不錯,不 過難度偏大,不適合新手
若是你搞某一方面搞不動了,能夠先看點別 的,不要一直死磕,由於你的能力還沒到,其實隨着你不斷的刷題和比賽,思考,你的能力一直在提升,就像Topcoder和Codeforces曲線所顯示 的那樣,好比說你如今看第二本書的某個地方死活看不懂,你能夠先去搞點別的,等到你能力增加了一塊,再回來看,發現很容易就能搞懂,這是你能力增加的最直 接的體現
--------------------------------我是分界線----------------------------------
下面是對有必定基礎的同窗的建議(刷完第一本書的大部分和第二本的一兩章之後)
書上面的題刷完之後,多搜些專題總結和別人的經驗看,何況有不少專題書上根本就沒有。 好比舉個栗子,動態規劃有太多的種類,樹形DP,機率DP,狀態壓縮DP,數位DP,插頭DP。。。以及一些優化技巧,斜率優化,四邊形不等式優化,單調 隊列優化等。每個都是一個專項,都夠你研究上一段時間,但同時這些知識也是很是實用的,這些裏面有不少專題若是你不主動去尋找就很難遇到的,通常我尋找 的途徑就是看別人的博客的時候經過看別人博客的標籤或博客裏提到的新名詞,而後我就會去搜索一下,看它究竟是什麼東西
舉幾個栗子,斜率優化DP推薦這篇:
http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html
四邊形不等式優化DP推薦看這篇:
http://www.cnblogs.com/ronaflx/archive/2011/03/30/1999764.html
單調隊列優化看這篇:
這樣的專題總結性的文章不光介紹專題知識,還有推薦的題目,看完後必定記得作作。
有些博客總結是很是經典的,好比說數據結構方面的神做:
http://www.docin.com/p-627462377.html
若是你刷完你負責的專題,最後連這個專題誰的博客寫的最經典你都不知道,只能說明你練的深度不夠
若是你負責動態規劃專題,若是你只刷完兩本書上的動態規劃就完事,最後連斜率優化,隊列優化都不知道,你還練個毛的動態規劃
這裏只是舉個栗子,只是一小部分,並非所有,但願你們養成本身主動搜專題這種習慣,不要像完成任務同樣刷完lrj就完事,要有深刻鑽研的勁頭,要主動去尋找資源
另外,數學方面,推薦幾篇極好的論文,曾經給過我很大幫助的
https://quartergeek.com/eight-gcd-problems/
國家集訓隊論文是筆寶貴的財富,吊絲逆襲的利器
都是IOI國家隊隊員所寫,大部分都是經典,新手不建議看,知識儲備到必定量後讀讀這些論文對能力的提升有很大的幫助,很大程度地擴展你的視野,必定要細讀,上面的題目都要作作。(但也不是全部的集訓隊論文都值得讀,質量仍是有差異的,隨着時代的發展,有些東西也可能過期,也可能有些東西如今看來比較簡單,但可能在10年前是很是難的,不過很是經典的集訓隊論文仍是不少的,好比clj的幾篇,能給你很大的啓發)
這裏有1999-2009國家隊論文下載地址:
http://pan.baidu.com/share/link?shareid=2039995002&uk=3408034740
這裏有最新的:
http://wenku.baidu.com/link?url=CKoUemxW3v_6-ffr26_ymzc2hcR08uJcujAL36sUUhzNQR2-fxB5iD9dbubM3lQcl0pnB7JRreFu3_ypD2oeCx_KHALmok9o_2jG3AJ93O7 (這只是其中的一篇,其餘的在側邊欄上都有)
因論文數目太多,能夠只挑本身專題內的或本身感興趣的讀
還有就是要多打比賽,由於比賽中學到的東西或許比你刷題獲得的還要多,不光是知識,還有各類經驗的積累
上面這些你作到了,估計你的水平已經到區域賽銀牌了
----------------------------------------我是分界線--------------------------------------------
若是你想更進一步,請看下面
最後有時間有能力的就去讀劉汝佳的黑書吧,新手必定不要讀,對新手來講既浪費時間又沒多大做用
隊裏必定要有我的去深刻的研究一下數學理論,讀一些數學原著,不少論文如今知足不了你了,可能對你來講如今原著更有味道
另外,還有一個建議,就是上面這些順序不要跳着來作,第一本還沒刷完就不要去看第二本,第二本書一章還沒刷完就不要去整專題,還有我不止一次的看到有人剛刷完第一本書或第二本剛刷了一點就去看黑書了,跨度太大,能力還未到,就算你當時能看懂一部分又有什麼用,終究白費力氣!
不要一口吃個大胖子,除非你是個天才,不然你吃不消的
我上面說的這些若是有人都能作到的話,估計他會是SDUST ACM歷史上空前的大神
最後,咱們爲何要參加ACM?
蘿蔔白菜,各有所愛,興趣是最好的老師
不管你當初以什麼樣的目的進入ACM,能堅持下去就是好樣的
比賽結果並不重要,重要的是過程所帶給你 的,證書或許只是一張廢紙,惟一剩下的只有那更強的思惟能力和編程能力和你的意志,大學裏能把一件事作好並把它一直堅持下去是件很幸福的事情。並且能夠肯 定的說,參加個一兩年的ACM,你的思惟能力和編程能力絕對不可同日而語,尤爲在咱們弱校體現的更加明顯。
固然,參加不參加ACM也不重要,金子在哪都能發光,不過在弱校很可貴到這麼好的鍛鍊機會。
最後但願SDUST ACM集訓隊越走越遠。
PS:SDUST已經奪過省賽冠軍啦!相信接下來的區域賽也是愈來愈棒的!