給acmer新手的建議?

大一,從剛入學準備acm,現在了解了搜索 二分 貪心 dp 枚舉的一點知識。我希望一些過來人能夠給我提點建議,什麼學習階段,方面的建議都可以,(正好馬上放寒假,可以實行)能夠給我將來的路一些參考和指引。在此,感激不盡。


第一次被邀請回答QAQ

蟹腰

首先ACM入門不算是很難,但是看題主的描述高中沒有OI基礎,那麼一個很重要的點就是學習要成體系。

比較建議的是選擇一兩本ACM入門的書進行系統學習,比如說《挑戰程序設計競賽》和《演算法競賽入門經典(訓練指南)》(利益無關,逃)

我好像只知道這兩本入門,歡迎聚聚們補充QAQ

然後記住每個知識點都需要用對應的大量題去熟悉和練習,至關重要。

有些書對於某些知識點會有遺漏,這時候可以去網上找找一些演算法條目對照和補充。

然後可以去打一些新生賽漲經驗辣。

當然,何不加我ACfun群和群聚談笑風生(逃)


大一的話不建議直接刷poj, 可以先去hdu acm 從簡單的題目刷起,那裡有題目分類,真不知道刷什麼可以從網上搜簡單題目列表。

書籍的話,大一一個是要把你的課本好好熟悉一遍,基本功掌握好,比如指針的各種操作真的理解了嗎,鏈表的刪除合併能熟練寫出來嗎,如果你覺得ok 了,推薦劉汝佳的白書,大家都知道,黑書暫時不需要看略難不是入門書。

其實大多acmer 獲取信息最多的地方是各種博客,很多人有寫題解的習慣,介紹一些演算法也是圖文並茂講的很詳細,可以去網上搜一些不錯的博客關注,看看大牛們是如何練成的。

最後推薦幾個適合入門刷題的地方

codeforce 國外的網站不定期有線上比賽,有難度標識,可以從題庫裡面找簡單的刷起,練腦,練英語,有很多很不錯的題目。

usaco 國外網站,像打遊戲一樣,做完這一關的題目才能打開下一關,題目質量很高,也很有意思,由簡入難,我以前是大一的時候打第一關,覺得有點難了就去累積知識刷別的題目,直到覺得可以來通關了就再來,一直通了好幾年吧,直到退役的時候還剩了一關實在太難。

uva 這個上面的題目可以配合劉汝佳的書來做,他上面有對一些題目分類和講解,個人不是特別喜歡這個網站,可能跟它的不太好操作有關係,入門題可以刷一些。

top coder 這個與coderforce 類似,到它要裝客戶端,操作有點麻煩,題目很好,想做的話可以晚上搜下教程。

hdu acm 入門級題目很多,上面說過。

zoj 比上一個稍難,有些能力了再來也可以。

poj 經典題目很多,質量也比較高,有些能力之後搜 poj 計劃,相信很多acmer 都刷過這個計劃。

暫時想到這麼多,做acm 要有持之以恆的毅力,短期這個東西是看不到多大收益的,典型的欲速則不達的事情,可以開個自己的博客記錄做題的心得,多與小夥伴們交流,加入一些群,定期關注一些比賽,嗯就這些吧先。


謝邀。

我也是一名入門ACMer,目前還很菜,也只是會簡單dp,搜索的水平。今天剛打完sysu的ACM新手賽,也正打算寒假好好學演算法。

我們學校的校隊一名大佬也是大一才接觸編程,在知乎上看了很多關於ACM競賽的回答,然後非常勤奮地學習,訓練,做了不少於1000道題,從而進入了校隊。我覺得他是一個極佳的榜樣。

我在這裡向題主提兩點建議吧。

1. 打好數學和英語的基礎。

英語不必說,IT行業的第一手資料往往是英文的。學好英語不僅利於看懂題目,或者是code forces上的題解,更重要的是對整個職業生涯發展都有巨大好處。

ACM是演算法競賽,其實根本意義上就是數學競賽的一種變式而已。越學到後面,就越有感觸,數學能力真的太重要了。

建議學好大學的數學課程,無論是大一的微積分、線代還是計算機科學必備的離散數學,都要完全掌握好。另外,可以嘗試學下數學系開的其他數學課,比如抽象代數。學數學不僅僅是為了掌握實現演算法的工具,更是為了鍛煉自己邏輯推理的思維。後者對ACM競賽相當重要。

2. 堅持進行科學有效的訓練。

挑一本入門書籍,從最基本的數據結構、演算法開始刷。書籍推薦劉汝佳的紫書。日本冠軍選手寫的《挑戰程序設計競賽》(挑戰程序設計競賽 (豆瓣))也很不錯。

《演算法導論》是必備書,《具體數學》也值得一看。

校隊的學長們給新手的建議是有效做題,OJ上刷一千題。水題不算。

這是一個很艱辛的過程。很需要你的自控能力哦。給題主說聲加油。

對我來說,ACM最大的魅力就是學習新東西的過程。

最後附上我們學校ACMM協會,課程資料網站 (acmm.club)上的一段贈言:

Do not spend all your time on training or studying - this way you will probably become very exhausted and unwilling to compete more. Whatever you do - have fun. Once you find programming is no fun anymore - drop it. Play soccer, find a girlfriend, study something not related to programming, just live a life - programming challenges are only programming challenges, and nothing more. Don"t let them become your life - for your life is much more interesting and colorful.

推薦閱讀:

我對ACM初學者想說的話 - 代號4101的專欄 - 博客頻道 - CSDN.NET

P.S.目前正在期末考複習,我打算在寒假時更新這個答案,將自己做過的題目做一個索引給題主參考吧。


不請自來。

提高自己的姿勢水平的最好方式莫過於刷codeforces了


不請自來。首先建議買本教程紅書也好,劉汝佳的入門經典也好,按照上面的知識點一個個推下來,把知識點學透,然後每個知識點都去刷些題,至於怎麼找題,就百度知識點加oj,不推薦bzoj,因為bzoj題目難度大,其他像什麼poj,vijos,codevs都不錯,codevs和vijos題目好像都有分類可以直接上去找,然後努力學一學,寒假就過去了。

入門之後,就可以開始打打codeforces,51nod,bestcoder之類的比賽了。

最後也是最重要的,自己變強後,要找好隊友,畢竟acm是個很團隊性的東西。


不要在乎名次,掌握思維方式,才是最重要的


不是很懂為什麼邀請我,一個水平很差勁的選手QAQ。我當時入門時也很迷惑,經過一段時間摸索(毫無長進2333),不過,我的建議是去搜一下「poj題目分類很好很有層次感」,poj上的題雖然好久沒更新了==,但是還是比較經典的。建議買一本書《挑戰程序設計競賽第二版》,世界冠軍watashi主譯的,不是《挑戰程序設計競賽2》,挑戰2沒看過不做評論。第二版很不錯,講解很清楚,但是後面的章節還是很難的,可以藉助別人的博客或者某些ACM-ICPC相關群,暫時實在看不懂可以放一段時間,學習一下其他的知識,相信在別人的博客上很容易找到較簡單的知識。至於劉汝佳系列的書籍,《演算法競賽入門經典第二版》,雖然說是 入門,不過上面的題目挺難的,對於新手還是很吃力的,其他的書籍更不適合入門學習。大致就這樣。


建議儘早聯繫實驗室準備退役。


FPGA邀請我,我還能裝下來句瀉藥。ACM邀請我做嘛(╯‵□′)╯︵┴─┴

這類請教入門XXX的問題,一般都已經有很多很好的回答了。先看完他人的回答,如果還是有疑惑再提問吧。

另外嘛,據我這段時間的觀察,這類問題,叉姐 ftiasch 最熱心,對初學者最友好。你把他的答案先看完吧。記得看完點感謝。

╮(╯_╰)╭

by 調bug調到怒氣值爆表還沒時間準備周一面試的lucyyang


邀請我?我也是一個新手,小弱雞啊,上個星期才剛混進學校的集訓隊,我也沒什麼建議啊,唯一的建議就是:先混進集訓隊吧,多和學長們交流。


推薦閱讀:

如何自學C++?
學習錄音,如何入門?
外匯投資入門需要些什麼?
總的來說,心理學研究的範圍是什麼?有什麼入門書籍可以推薦給「門外漢」看?
各學科領域入門書籍推薦?

TAG:演算法 | 入門指南 | ACM競賽 |