各位acmer 學累的時候不妨來看看

1.題庫與網站資源
    題庫-在線提交系統(Online Judge)簡介
    下面是幾個比較大的在線提交系統(Online Judge)裏面有大量歷年的競賽題目,註冊一個ID,然後用自己熟悉的語言(一般有Pascal/C/C++/Java)寫好源代碼提交即可,會實時返回信息告訴你是否正確。採用黑箱測試,系統裏有一套標準的輸入輸出數據(對外保密,而且通常數據很多很怪),你的程序的輸出和標準輸出完全符合即可。
    常見的返回信息有 AC(Accepted,通過)、WA(Wrong Answer,輸出有錯誤)、TLE(Time Limit Exceeded,超時)、MLE(Memory Limit Exceeded,內存溢出)、RE(Runtime Error,發生實時錯誤)等,只有AC了纔算做對一題。這裏只是一個簡要介紹,請大家在做題時先看看各網站上的FAQ,Enjoy it
    北京大學 Online Judge(POJ)  <http://acm.pku.edu.cn/JudgeOnline/> 建立較晚,但題目加得很快,現在題數和ZOJ不相上下,特點是舉行在線比賽比較多,數據比ZOJ上的要弱,有時候同樣的題同樣的程序,在ZOJ上WA,在 POJ上就能AC。不過感覺pku的題目要難很多。這個題庫的一大特點就是 Online Judge功能強大,其實pku現在已經是中國最好的ACM網站。
    浙江大學 Online Judge(ZOJ) <http://acm.zju.edu.cn>  國內最早也是最有名氣的OJ,有很多高手在上面做題。打開速度快。
    西班牙Valladolid大學 Online Judge(UVA)    <http://acm.uva.es/>世界上最大最有名的OJ,題目巨多而且巨雜,數據也很刁鑽,全世界的頂尖高手都在上面。據說如果你能在UVA上AC一千道題以上,就儘管向IBM、微軟什麼的發簡歷吧,絕對不會讓你失望的。
    俄羅斯Ural立大學 Online Judge(URAL)    <http://acm.timus.ru/>也是一個老牌的OJ,題目不多,但題題經典,我在高中的時候就在這上面做題的。
    俄羅斯薩拉托夫國立大學(Saratov State University)(SGU)    <http://acm.sgu.ru/>SGU 是俄羅斯薩拉托夫國立大學(Saratov State University)用於培養ACM選手的訓練網站。這個網站的建成時期較晚,但隨着比賽的舉行以及新題目的加入,這個題庫的題目也日漸豐富。這個題庫的一大特點就是 Online Judge功能強大,它不僅使你避開了多數據處理的繁瑣操作,還能告訴你程序錯在了第幾個數據。這一點雖然與ACM的Judge有些出入,但是卻方便了調試程序。與UVA相比,這裏的題目在時間空間上要求都比較嚴格,而且更多的考察選手對算法的掌握情況,所以特別推薦衝擊NOI的選手也來做一做。
UsacoGate Online Judge(USACO)    <http://ace.delos.com/usacogate>
全美計算機奧林匹克競賽(USACO)的訓練網站,特點是做完一關才能繼續往下做,與前面的OJ不同的是測試數據可以看到,並且做對後可以看標準解答,所以如果大家剛開始的時候在上面那些OJ上總WA卻找不到原因的話,可以試着來這裏做做,看看測試數據一般是從什麼地方陰你的。


網站資源:
http://www.608088.com   acm很不錯的網站(資料很多),教育網也可以很快打開,acm社區.

比如:
acm算法介紹 算法模版  http://www.608088.com/category-5-1.html
各大OJ解題報告        http://www.608088.com/category-4-1.html

注意:還有一種非常重要的網站資源―――用百度搜索你在oj上不懂的題目(例如:pku 1015),就可以看到了。也可以直接打“ACM”等等。有點看運氣,但是其實也有搜索技巧在裏面。



2 學習資料說明
      入門其實有兩種方法:1 自己看競賽書,看別人的程序等等。2 上題庫(如:pku和zju)做題。第一種可以較爲系統的學到東西,但是時間久了就會無聊,而且長久實踐不足,編程能力永遠得不到真正的提高。第二種雖然看着自己AC很興奮,看着自己的帳號排名提高很開心,但是學習不繫統,對較深的知識學習不足,總停留在做簡單題的份上。
      最好的方法就是兩種方法相結合。作爲入門者還是要以多看簡單競賽書多看題目和程序爲主(例如:《信息奧賽輔導教材》、《基本算法稿》、《06暑假培訓》和《基本算法C++》,都在“初級入門學習”文件夾中),這個學習時間佔70%,同時也要有30%的時間上題庫做題。畢竟理論學習要和實踐相結合。



3 一些話
    真的很不確定這些資料可以起到多大的作用,但是唯一確定的就是自己當年如果有這些東西,那將是多麼~~~事實上這些資料確實對過去新加入的ACMer有很大的幫助。願它對每個看到這份資料的人都能充分起到作用!
ACM是什麼,ACM學習過程中會有什麼感觸。得到不同結果的人會說不同的話。但是唯一一樣的就是:無悔!
    關於ACM的介紹還有入門的東西可以在“初級入門學習”文件夾中的“ACM入門進階.rar”找到部分的答案,在百度和google搜索也可以。這裏就不在多說。大學中可以學的東西很多很廣,計算機專業包括的東西也一樣。具體怎麼樣,大家只要走進西門兩家書店便一目瞭然。如果說程序語言是計算機專業的基礎,那麼ACM充當這個基礎的角色一點都不過份。ACM中可以學到的是對程序設計語言的深入理解和應用,同時培養出來的是建模和轉化模型的能力,也是解決問題的能力。這些是優秀計算機人應有的基本。

    有人說:“如果再來一次大學,我會在大一大二瘋狂搞ACM,參加省賽,參加區賽,參加世界賽,然後大三開始做項目~~”問題是你參加了世界賽就算不拿獎你也有資格可以去微軟和google了。ACM是大學生四大競賽之首,沒有水分,完全考平時做題思考積累的實力拼搏。這幾年國內ACM的發展太快,難度增大,牛人更牛更多,競爭更加悲慘。華師在兩年前參加ACM的人不到10個,現在不下200人。華師的發展只是全國其他高校延後了幾年時間的一個縮影。但是這是社會進步帶來的我們不得不面對的結果。例如前面幾屆的師範專業老師就會有到了學校要面對比他厲害十倍的學生的尷尬場面。非師專業也有面試網易騰訊等公司時因爲寫不出算法而與高新offer無緣的情況。這裏更想說的是ACM的好處,而不是讓大家在壓力下不得不學它,要知道許許多多的計算機領域幾乎與 ACM無關(例如網頁製作,flash等)以上這些話是回答那些說ACM沒用的人的,不包括對其充滿熱情的人。
    其實ACM的公平不但體現在競賽現場上(通過測試數據就算贏,不管你程序怎麼寫),而且還體現在學習的過程上。這點需要詳細說明一下。
1:學習的方法幾乎一樣入了門之後大家都是在題庫上拼命做題。全世界沒有一個人例外。
2:自學是唯一的方法。ACM不是看懂的,也不是聽懂的,而是練懂的。懂的唯一方法就是要多練多寫。在賽場上無數悔恨的根源就是平時訓練做題時對沒有完全理解的知識抱有幻想。臺上一分鐘臺下十年功!
3:大家平時的生活都是:

<http://acm.pku.edu.cn/JudgeOnline/> 、 <http://acm.zju.edu.cn/><http://acm.zju.edu.cn> 、
<http://acm.uva.es/>。

目標都是一樣讓自己的帳號排到第一版上。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章