登入使用能幫助您收藏更多喜歡的好書,
希望大家都能多多登入,管理員在此感激不盡啦!
《邊防戰士》第二百三十章 接觸ACM競賽
  上學後我就聽見同學們都在嚷嚷什麽ACM競賽,趕緊找到唐風、曾雍了解,得知教委下發了文件,今年要在國內引進ACM國際大學生程序設計競賽(ACM Collegiate Programming Contest,簡稱ACM-ICPC或ICPC。

  這是神馬東東?為什麽引起同學們如此風靡?當時我們學生知之不多,我跑到導師那裡問,他也是不大清楚,但是知道這事引起了學校裡的學生們的追捧,為之連正常上課都打亂了。聽說是上海那邊發起的,便打了個長途電話到上海那邊相熟的教授詢問。從上海那邊傳來的信息是:

  ACM競賽是由美國計算機協會( for Computing Machinery,ACM)組織的,始於1970年,並每年都舉辦的年度性競賽;是全球大學生計算機程序能力競賽活動中最有影響的一項賽事,已在全球舉辦了25年之久,規模最大且最負盛名的計算機程序設計競賽。

  導師說:“看樣這個競賽真有點名堂哩,你去找點有關的介紹什麽的,拿來我看看。”

  ACM是新事物,有著參加各類競賽傳統的西電,不用動員,得知消息的同學便一傳十、十傳百,很快盡校皆知,報名者潮湧。

  我報了名,在組委會處拿了套資料讓導師幫我斟酌斟酌。導師看過,不懷好意地對我說:“徒弟啊,你不怕瘦吧?”

  “怎啦?”我沒有立刻回答,心中揣摩著:“導師從來沒這麽說過話,這話裡透著邪性嘛。”於是開口道:“導師,我這鐵身板,瘦也難吧?”

  “這個競賽會是軟化你這鐵身板的蝕化劑,或許是強化大腦的鴉片。”

  “這麽厲害?”

  “廢話,不厲害,為師我會這麽說麽?”

  “那我真得試試!”

  “你不是報名了麽?”

  “報名是報名了,可還得聽您的意見不是。不會影響我參加您的科研項目吧?”

  “你也太看得起自己了。”導師擠兌了我一句,接著就說:“我到是支持你去試試,對你今後在編程上會有莫大的好處。”

  有了導師的這句話,我便全力以赴地投入的準備ACM競賽的學習中去了。

  中國是1996年,就是我大三下學期,開始參加ACM亞洲預賽的。起因是,那一年,上海大學一位教授注意到了ACM/ICPC這項國際賽事對大學生尤其是工程類大學生的重大益處,在與亞洲區負責人溝通後,一說即合,於是,這一年在上海大學第一次迎來了大陸本土的區域賽,國家教委亦是鼓勵有之。

  上海開風氣之先,我們內地學校不得不跟上,學校那些搞計算機與軟件的教授一經知曉都是竭力推薦。

  我們軟件研發小組的特長就是在軟件編程上,自是首當其衝,軟件學院的教授都看著丁弘沙、任和旺呢!誰叫他們在院裡被稱為“高手”的呢,都希望他們在這次大賽上一顯身手,取得佳績。所以我們四人參加ACM競賽是水到渠成的事。

  我們四人在西安的飯館裡,搞了個小的誓師活動,我把導師的話對他們講了,丁弘沙也把他們軟件學院教授的寄語說給唐風和我,大意就是:程序佔先不為圖,封帥斬將方呈雄!這胸襟,聽得我和唐風有些面面相覷。軟件學院在軟件程序大賽上當然得有圖謀,當然鼓勵自己的學生要有雄心大志。我們清楚西電近對交通,

北抗清華,南鎮滬上,莫不想在此等大賽上獨佔鼇頭,成為軟件編程領域中國大學的一極。  唐風很不地道地拍了任和旺的肩膀一下:“有啥許諾?”

  “哪可不是我們教授的風格。”任和旺有些自豪地回答。

  “白拚命?”唐風還是調謔。

  “那怎麽會呢!”任大頭也是自信地表示自己的態度。

  “那你的教授許諾什麽了?”老任也不敢任唐風調侃。

  “那還不是樂見其成,樂享其成。”唐風樂呵呵地說到,很不以為然。

  唐風的態度恨得任大頭心癢癢。

  這個競賽提倡創新和團隊協作,是由學生組隊參加的;鼓勵學生在構建全新的軟件程序時盡情發揮創意,幫助學生檢驗自己在強壓力下的工作能力,在規定的時間裡出難度大、量大的考題。所以,這個競賽是世界各地計算機程序設計的佼佼者大顯身手的舞台,也是世界一流大學展現其教育水準,重點則是在計算機科學技術與軟件工程開發教育上,業內人可見的一個最佳窗口。

  看到我們學校的校長對這個活動的大力支持,給參訓參賽的學子大開綠燈,只要在訓練課上簽到,就可不必參加正常安排的課程,ACM競賽對於學校的意義自不必多說了,可以說,“西電”是中國最早“積極”參加這項賽事的學校之一,我們這一屆大學生成為以後風靡理科與工程科大學生參與ACM賽事的第一代人。

  啊!參與ACM是一個關於青春、熱情和友誼的故事,給了我太多太多激動的回憶,讓我經歷了太多太多寶貴的拚搏。每當回憶翻湧,總會感慨當時的熱情、拚搏和舍身的投入——自己雖然沒能前去比賽,也算,嗯,終歸是一段奮鬥過的青春。

  有ACM競賽這回事後,學校分秒都不耽誤,在報名結束立刻組織了ACM培訓。為了這次培訓我自己買了台筆記本電腦,那時已經和家裡聯系上敢花錢了。這台ThinkPad 760CD,是上一年的新款(1995.10出品的),是世界上第一款支持多媒體功能、第一個采用12.1英寸SVGA高分辨率顯示的筆記本電腦。此時的筆記本電腦正如當年的PC一樣,開始走向普通大眾。

  有筆記本電腦方便我做科研,也方便我的課程學習,絕對是必要的學習工具,花多少錢都是值的。電腦買到後,對班裡同學可是次震驚,在西電一個大學生敢買那麽貴重的計算機的,我大概是第一個。有電腦的方便,使它成為寢室裡公用的物品之一,反正是個工具,大江、唐風、曾雍或是其他同學用用沒什麽的,也不打算用到地老天荒。我家裡的那台台式機現在就是個渣,計算機發展太快了,我有切身體驗。

  我把“筆記本”帶回小倩住的地方,讓她露出不可思議的神色,我向她解釋:“這就是個工具,用起來方便,現在已經發展到必須使用它了。以後你會體驗到,計算機發展快,有機會時我再為咱家買台更好使的。”

  集訓終於在本校的機房進行——科技樓四樓機房,待到第一天培訓,教室根本就坐不下那麽多的人,人聲鼎沸啊。有我的大力拱持,我們四人好不容易有個偏坐,還是在窗台上,好不後悔來的晚了。

  老師先講課,用的淨是英文原題,很多同學一時很不適應,我都覺得難,有理解上的障礙。然後就是上機做題,這才好一些,比聽講英語例題容易些。我們都在那裡做過上機實驗,因為人多,好幾人才能分得一台微機,輪流上機做題,其他人就在旁邊看,心中想著解法,那是種啥滋味,有想法不能動,憋得難受啊!畢竟還是借的機房,軟件不能隨便改,所以無法保存自己所做的題,退出了就全都沒有了。書本資料每天拿去,離開的時候須帶走,中午還要關門。當時那種緊張糟亂的狀態很說明西電大學生的熱情。

  然而,ACM培訓班熱得快,退潮得也快,一個多星期後,參訓的同學基本可以人手一台計算機了。此時,班中大部分人感覺競賽的題太難,會與自己的學業衝突,便放棄了。不得不說我們這些新人有很多的糾結,不像後來者有問題可以問學長,我們沒得人問;可“杯具”就存在於,參加集訓的這幫人弱得連問題都沒得問,只能自己先懵懂著,慢慢琢磨,才有了問題和解題的思路。

  我們四人則堅持下來,都有一種在競賽上展現自我的強烈要求,哪裡會簡單放棄呢?這個競賽可是世界級的耶。

  集訓的開始階段,手冊除了簡單的題列表外,基本上做題就是抄代碼的節奏。天天做題,卻除了寫代碼更熟練,自己沒有發現在ACM解題上有任何明顯的進展。而某一次訓練賽中,我們的隊友丁弘沙在做某道完全會做卻不知怎麽存得下數據的題目的時候,被指導老師告知C語言有__int64這麽個東西(__int64,是表示比較大的整數的一種變量,初學者在做超過10^9的整數的時候如果不知道這個變量就會不知所措)。

  因為ACM是新事物, 國內的狀況是沒資料,沒引導,幾乎全靠自己。所謂師傅領進門,修行在個人,可師傅都不知道門在哪裡,我們隻得去摸門,可門都進不去還怎麽搞。一個字:難;兩個字:太難;三個字:何其難;要說有四個字的話,是“絕對的難!”要我說,是“真他媽的難!”

  參加ACM競賽,需要在計算和編程方面進行廣泛的學習和訓練,不可一蹴而就。首先要熟悉數據結構和算法,也就是照著算法導論實現各種排序算法。ACM競賽的程序設計一般有16種類型,它們分別是:Dynamic Programming (動態規劃)、Greedy (貪心算法)、Complete Search (窮舉搜索)、Flood Fill (滿水填充)、Shortest Path (最短路徑)、Recursive Search Techniques (回溯搜索技術)、Minimum Spanning Tree (最小生成樹)、Knapsack (背包問題)、 Geometry (計算幾何學)、Network Flow (網絡流)、Eulerian Path (歐拉回路)、Two- Convex Hull (凸包問題)、BigNums (大數問題)、Heuristic Search (啟發式搜索)、Approximate Search (近似搜索)等,我之所以在這裡羅列下來,就是這些程序設計太摧殘人了,也讓閱讀本段的讀者經受點折磨吧。
鍵盤左右鍵 ← → 可以切換章節
章節問題回報:
翻譯有問題
章節內容不符
章節內容空白
章節內容殘缺
上下章節連動錯誤
小說很久沒更新了
章節顯示『本章節內容更新中』
其他訊息