天天看點

(轉)一個大牛的acm曆程(看着就要顫抖)

從我接觸程式競賽到現在應該有十多年了,單說ACM競賽,從第一次非正式參賽到現在也差不多有7年多的樣子。有太多的故事,想說的話,卻一直沒能有機會寫下來。一方面是自己忙,一方面也是自己懶。是以很感謝能有人“逼”我來寫點什麼。想到會有很多人來讀我寫的文字,自己也覺得很開心。其實每個人的生活都是一部電影,隻是沒有那麼多幸運的人有機會去訴說。這裡,且說三個小故事。

一個關于仰望,崇拜和夢想的故事

2000年,有一個天才的高中生,在IMO(國際數學奧林匹克競賽)中以滿分獲得了金牌并提前一年進入北大讀書。在他前往北大之前,他受邀到他畢業的國小給了一個演講。而聽衆裡面有一個三年級的小正太,演講啥也沒記住,倒是在心裡埋下了一個小小的夢想:“我也想代表中國去拿金牌”。

10年後這個天才高中生博士畢業,并受邀回到他畢業的高中又給了一個演講,當年的小正太變成了少年,又恰好在聽衆席裡。這個少年剛剛入選了資訊學奧林匹克中國國家隊,将代表中國去加拿大參加國際比賽。

這個天才高中生叫恽之玮,拉馬努金獎得主,目前在斯坦福大學任教;而那個小正太,也就是那個少年,後來非常丢人的拿到了國際比賽的銀牌,又在ACM競賽圈子裡晃悠了一圈,現在也跑到美國讀博士了。很不幸,世界沒能狗血到再度産生一個莫紮特和貝多芬的故事。少年自然沒法和天才相比拟,不過起碼在需要寫寫文字的時候,少年的故事可以這樣開頭:“我有一個夢想”。

國小的時候參加計算機興趣小組,從那裡接觸了程式設計。不過,要說真正被帶入了程式競賽這條不歸路,那還得歸功于我的恩師,常州進階中學的曹文老師的頂級忽悠能力。

我從初一開始跟着曹老師學習資訊學競賽,曹老師最喜歡有事沒事的扯他過去的學生的故事,以及競賽圈裡的八卦。也正是那個時候,從曹老師的口中,我知道了世界上還有ACM這麼個玩意。還記得某一天,曹老師又在胡侃:“ACM比賽一共有4所大學奪得過2次世界冠軍:上海交通大學,聖彼得堡ITMO,華沙大學還有斯坦福大學。”說出來不怕笑話,這也是我第一次聽到斯坦福大學這個名字。是以斯坦福大學給我的第一印象就是:兩次世界冠軍的學校!說句題外話:因為恽之玮的原因,我喜歡了北大很長時間,也因為曹老師的這句胡侃,讓斯坦福成了我最向往的大學;不過造化弄人,我的大學在北大的隔壁度過,而博士,又跑到了斯坦福的隔壁。

曹老師八卦的性格,也潛移默化的影響了我。平時沒事的時候,就特别喜歡翻閱往年的OI比賽的成績單,還有ACM世界總決賽的名單。直到現在,我都可以如數家珍的說出之前近10年的資訊學競賽中國國家隊(甚至美國國家隊)的隊員名單,或者ACM世界總決賽清華,交大的隊員名字,以及他們的名次。對于一個國中的孩子,翻着這些名字,聽着這些故事,我無法用言語描述那是我心中的激動,好像這些故事,發生在一個無與倫比的,廣闊的世界,而這些名字,就猶如夜空中的星星一樣,閃耀,奪目。後來的很多年中,我很有幸幾乎全部見過或者接觸過了這些當年在我心中猶如浩瀚星辰般的神們。他們應該很難想象,當我第一次見到他們的激動的心情。那種感覺,和歌迷見到他們的偶像一樣。那時候心中埋藏很多年的小小的執念,也不過就是見他們一次。甚至直到現在,對一些人,還是這樣。

國中的時候最喜歡參加省裡的夏令營,冬令營,那時候年紀小,最喜歡跟在師兄的後面,聽着師兄們講着我聽不懂的算法,打着我沒玩過的遊戲(我對仙劍的執念也是從那個時候開始的);初三的暑假我有幸到了上海交通大學ACM隊訓練了一個月,作為一個國中生,我第一次見到了,國内頂尖的大學,頂尖的大學生是怎麼樣的,也遇到了我無比尊敬和感恩的,上海交通大學ACM班的俞勇老師;到了高中開始以非正式隊伍的身份參加ACM區域賽,也就總算可以親眼看一看,那些傳說中的人,還可以沖上去和他們合一張影,然後激動的晚上睡不着覺;上了大學,大二暑假我到美國Facebook公司總部實習,在灣區見到了更老一輩的,那些如雷貫耳的名字。

光陰荏苒,時光匆匆流逝,好些畫面在心裡依然是那麼清晰。講講那些名字吧。國中每次參加省裡組織的資訊學冬令營夏令營都會嚷嚷,我要是能見一面朱澤園(IOI金牌,ACM總決賽亞軍,MIT博士)就好了,後來高二時在ACM杭州賽區總算見到了,當時還見到了他的兩位隊友:樓天成(樓教主,圈内人士應該都很熟悉)和周源(IOI滿分,ACM總決賽亞軍,CMU博士),當時捧着那張合影,簡直比拿了冠軍還激動;初三暑假在交大,第一次在機房裡見到了仰慕已久的戴文淵(ACM世界冠軍,目前就職于華為諾亞方舟實驗室),後來每次隻要有機會都要蹦蹦跳跳的跑去找戴文淵合影;高一在ACM南京賽區,第一次見到了唐文斌(ACM總決賽世界第六,Face++ CEO),以及他的兩個隊友王棟(IOI金牌)和龍凡(IOI金牌,MIT博士),當然還見到了因為比砸了心情不好而拒絕我合影請求的郭華陽(IOI金牌,就職于Facebook)。當時我可能做夢也想不到,過了若幹年,我會和唐文斌一起坐在火車的餐車地上打牌,會和郭華陽在紐約曼哈頓睡上下鋪。後來進了大學,和貝小輝成了好朋友,樓天成成了我的助教,胡偉棟(IOI金牌,ACM世界亞軍)會請我吃飯;我更不會想到,再後來,張一飛(IOI兩枚金牌得主,就職于Facebook)會給我推薦履歷,我會和符文傑(中國唯一IOI,IMO雙國家隊成員,就職于Facebook)一起吃飯,和侯啟明(NOI曆史上唯一的滿分,IOI金牌,浙江大學副教授)一起扯淡。當然了,進入大學以後,我不會再端着相機四處合影了。

現在看,這些名字也很普通,也很平常,很多過去的故事,可能在茶餘飯後都不會被提起了。但是世界上畢竟有這麼一個小故事曾發生過:在很多很多年前,曾經有一個小正太,每天念叨着這些名字,在心裡埋下小小的夢想,然後一步一步的,他見到了這些他成天念叨的人,和他們成了朋友。多年以後,他的夢想本身,也許此時正化作一個淡然的微笑。

一個關于固執,堅持和自信的故事

從國小開始參加資訊學比賽,高一開始參加ACM區域賽,一直到現在博士還在參賽。這麼多年了,有時自己都會感慨。每年參加比賽這件事情,好像已經快成為我生活的一部分了。記得有一次在ACM區域賽的時候發言,我說ACM是我的初戀,現在看,可能ACM成了我的生活了吧。懵懂,熱烈,堅持,淡然,其實愛情也不過如此,最後所有的一切,都化作了生活。

很多人問我,這麼多年了你怎麼還在參賽呢,花費這麼多精力,時間,到底是為什麼呢?其實我也快說不清楚了。很小很小的時候,那時候教數學奧賽的老師嫌我貪玩訓斥我鄙視我的智商。小孩子自尊心總是特别強,想着我換個地方證明我比那些你喜歡的人都厲害,最後差不多是做到了;到了國中,我想比那些師兄師姐們都厲害,要做全國一流的選手,後來差不多也做到了;到了高中發現好像在我身邊的師兄,同學超不過了(提一下,有一個高中師兄叫金斌,TCO世界冠軍,ACM總決賽冠軍亞軍各一次,還有一個高中師兄叫吳卓傑,ACM總決賽冠軍,目前都就職于Google),我就想我可以到了大學參加ACM,在ACM賽場上超過他們;到了大學,做工程的不斷實習做項目,做科研的一篇接一篇的發論文,刷GPA的幾乎每門課都是滿分。我看看自己似乎沒有一樣能做到最好的,于是就想,要不然就做一個科研界ACM比的最好的,而ACM界又科研做的最好的人吧;再到後來,我知道世界上還有Percy Liang(斯坦福大學助理教授,ACM總決賽亞軍),Matei Zaharia(MIT助理教授,Spark的開發者,ACM總決賽第四)這些人,遂發現自己實在是差距太大了,實在連個理由都編不出了(也許可能是常州方言講的最好的?)。可能這個時候,ACM對我而言,更像是對自己的敬禮。畢竟,自己已經堅持了很久很久,從江南,到帝都,再到美利堅加利福尼亞。就像唱一首歌,跳一支舞,寫一段文字,哪怕根本沒有觀衆,也總希望能夠最後落下伴着微笑的句點。做一件事不一定非要有一個意義,因為堅持的本身,就有意義,也因為,堅持總能伴着一份感動,時不時的在心中翻湧。

堅持是要有信念的,信念是什麼?當然是“赢”。想想還挺不容易也挺可笑的,到現在還在乎着輸赢,尤其輸赢已經早就沒有了意義。不過也不那麼可笑,因為我并不執念。“赢”也許隻是對生活的熱情的簡寫吧。小時候想打敗所有的人,做最好的選手,結果過了十年參加國際比賽拿了塊丢人的銀牌,在中國隊裡墊了底;高中參加ACM,每次都為擊敗一支清華的隊伍感到振奮,而當自己到了清華,第一次參賽就在清華内部排在了最後;大學幻想着以自己作為隊伍的核心戰鬥力,代表清華拿冠軍,參加總決賽,結果連續拿到了4次區域賽的亞軍(清華的規矩是,隻有冠軍才有資格代表學校參加總決賽),并且其中三次都是在最後時刻被反超,同題數輸罰時;大三那年總算進了總決賽,幻想着能夠屌絲逆襲一次進個前八,結果最後驚險拿到了領獎隊伍的最後一名(總決賽一共12支隊伍可以獲得獎牌,金銀銅各4支,我在2013年的總決賽獲得第12名),并且還輸給了CMU(後來在CMU遇到了他們的教練,被調侃:“Oh, we beat you, right?”);大四練了很久的俄羅斯風格的題目,想着再去一次在俄羅斯舉辦的總決賽,證明一下自己,結果在最後一次區域賽輸給了當時完美發揮的交大,最後甚至連亞軍都沒有拿到。今年8月我在加州大學伯克利分校開始了自己博士生涯。很有幸,我找到了兩個老朋友作為自己的隊友,然後我們輕松的拿到了西北太平洋賽區的冠軍。于是,我可以代表加州大學伯克利分校,參加5月份的ACM世界總決賽了。這是我的第二次總決賽,也将是最後一次。不過我希望後面的故事不要再繼續按照之前的走勢了。

這裡着重說一下我大三那年(2012)參加ACM的經曆。當年我們的隊名叫Again And Again,理由很簡單,隊裡面三個人,我,毛傑明(IOI金牌,目前在普林斯頓讀博士),莫濤(NOI第一,目前在香港中文讀博士),在過去的2年裡(2010和2011)分别參加過8個不同的賽區,一共獲得了其中的6個亞軍,并且又在2012年的長春賽區,一起攜手拿到了我們的第7個亞軍。9次比賽7次亞軍,我想這個記錄也是挺難超越的了。

我是一個固執的人,一旦認定的事情很難再被改變;我也是一個幸運的人,大部分我認定的事情都起碼沒有失敗。也許,老天真的會偏愛一個願意一直僅僅因為喜歡而堅持的人吧。中學的時候,大部分時間都是我一個人呆在機房裡,或者一個人在家裡抱着電腦想問題,那時候參加程式設計比賽是有理有據的,因為可以保送大學,可以給學校争光,家長和學校也都支援。到了清華,事情就不一樣了。我知道,現在參加程式比賽越來越多的有了功利性,拿獎可以保研,可以找工作,或者給學校給上司争光。不過這些理由在清華,都是不成立的。我的大部分天才同學們,都在北美最好的學校讀博士,至于給學校和上司争光,我想也許我們拿到了世界冠軍,可能會有機會上一次清華首頁吧,不過這也隻是我的猜測——畢竟清華從來沒有在ACM總決賽上奪冠過。清華沒有什麼ACM隊,沒有ACM訓練或者選拔,也沒有什麼獎金或者評優加分。在清華,ACM不過是衆多學生活動中普通的一項。我們這些老人有一個老笑話:“如何在開幕式迅速識别出清華的學生?在那裡做作業的!”在很多學校,也許有很多ACM隊的黑話,傳統,故事;而清華也有他自己的故事,這些故事可能最特别也最普通。特别在于,清華也有與衆不同的故事,不過這些故事幾乎沒有單純關于ACM的:比如鬲融的故事(清華的一段傳說,計算機系曆史最高GPA,IOI金牌,ACM總決賽亞軍,普林斯頓大學博士),周源的故事,或者樓天成的故事;普通在于,這些故事并沒有一個明确的标簽,ACM比賽隻是這些故事裡面,很小很小的一部分。大家是清華人,要做最好的學生,要發論文,要搞好課業,要跑3000米,隻是大家都喜歡ACM,覺得她有趣。

“有趣”二字,說來輕巧,可是,我似乎也找不出更好的詞彙來評價ACM這項活動了。讀博士了之後很多人勸我說:“你都讀博士了還玩這些年輕人的活動。”我同意這個觀點。不過因為我還是覺得參加ACM很有趣,是以我又固執的接着參加了。于是作為一個老博士,我又得繼續忽悠着同為博士的隊友們在周末抽出時間來訓練,繼續在閑着無聊的時候作着我自己關于“赢”的春秋大夢。

一個關于青春,熱情和友誼的故事

參加ACM ICPC競賽,給了我太多太多美好的回憶,讓我收獲了太多太多寶貴的友誼。每當回憶翻湧,總會感慨當時的純粹,熱情和真摯——自己也算,有一段奮鬥過的青春。

初三的暑假和兩個師兄,吳沛凡(目前在紐約大學讀經濟博士)和金斌在上海交大ACM隊訓練了一個月。期間每天上午做一套真題,下午修訂和讨論。還記得那時候金斌第一次洗冷水澡的時候爆發出的驚人慘叫;記得最後一部哈利波特問世,我晚上拽着沛凡給我惡補哈利波特;記得第一次知道交大的BBS叫未名,清華的BBS叫水木;記得第一次知道了當時還得稽核大學生身份的人人網,當時吳卓傑還用人人網的bug玩上面買車位的網頁遊戲;記得第一次去問交大師姐一道題怎麼做的時候紅着臉躊躇了好半天;記得當時更老的師兄們騎車載着我們去吃蓋澆飯;更記得第一次三人組隊赢了交大一隊時候的興奮和激動;也記得第一次見到交大ACM班的俞勇老師時候的膽怯和害羞……那段時光是我整個中學生涯中最好的時光,每天都很快樂,每天都有進步。我不得不承認,從那時候開始,交大成了我高中時期最向往的地方:為了去交大而不去清華,我還在高三的時候和我的媽媽進行了接近三個月的激烈鬥争。好多好多年過去了,當年的ACM隊師兄師姐們,早就工作,或者快博士畢業了;三個坐在後座的小屁孩,現在兩個在讀博士,一個拿了世界冠軍,去了谷歌;俞勇老師老了很多歲。據我很多交大的同學說,俞勇老師很嚴厲。也許正因為我沒真正做過俞老師的學生,是以起碼在我這裡,俞老師給我的印象是一個溫和負責的導師,每次我參加比賽見到俞老師,都會特别親切的打招呼,交談。也許我應該對我去了清華感到慶幸吧,因為,從此交大在我心裡就隻留下了她最美好的樣子。

大學在清華碰到了毛傑明和莫濤兩個死黨,一起吃外賣,一起互黑,一起旅遊。那時候我自封後勤隊長(其實我在每一個隊伍裡的角色都是這個),負責研究去什麼賽區,每次協調大家什麼時候訓練,訓練什麼題,還負責代購火車票飛機票以及和教練溝通,并且樂此不疲。他倆也待我不薄,因為毛傑明,我在大學裡少走了很多彎路,又因為莫濤,讓我多了一個特别鐵杆的基友。

2011年福州賽區,隻要另一支清華的隊伍不能在30分鐘内通過最後一題,我和毛傑明就能晉級總決賽。隻是很可惜,20分鐘後,那支隊伍前,升起了對應顔色的氣球。我還清楚的記得,在回程的飛機上,心情郁悶的我和廈門航空的空乘吵了起來。毛傑明不停的安慰我不用跟人一般見識。我後來又去過不少次福建,不過也再沒做過廈門航空的飛機。

2012年我和毛傑明還有莫濤組隊。那年的長春賽區,比賽前我們三個吃牛排刮出了一張獎勵2元錢的發票,要知道當時我們已經拿了6次亞軍了。莫濤覺得2元錢太晦氣,還刻意第二天早上給服務員送出1元的小費希望讨個吉利。結果賽場上,我們站在中山大學的身後,近距離目睹了他們在比賽結束後5分鐘得到系統傳回的一個YES,并以罰時優勢将我們反超并奪冠的欣喜若狂。更狗血的是,在接下來的由中山大學負責命題的天津賽區,有一道題目和之前在長春賽區中山反超我們的那題一模一樣。于是,在中大的好心保送下,我們總算拿到了冠軍。

2013年聖彼得堡的總決賽,從來不喝咖啡的我在賽前喝了咖啡,不過似乎咖啡對于緊張沒有什麼好的療效。雖然這麼多年來我每逢ACM比賽都會緊張,心跳加速,血壓升高,不過那一天似乎大家都緊張的特别嚴重:場上三個人對着兩道題看了1個多小時居然都不會做,而一出賽場就都會了。回憶到當時看結果公布時自己的焦慮和不安,我覺得以後估計也不會有機會能夠讓自己的心律比那個時候更快一點了。記得比賽入場的時候我和我的一個俄羅斯朋友,當時莫斯科大學的選手Sergey握了一個手,然後那一年莫斯科大學和我們都拿了銅牌。毛傑明和莫濤都說,估計是我吸來了莫斯科大學的仙氣,把人家拉成了銅牌,把我們從胸牌,提到了獎牌。這事我後來一直沒好意思和Sergey說,希望他不會在心裡罵我。

2013年下半年,毛傑明去了普林斯頓讀博士,我和莫濤拉來了陳高遠(Topcoder Target,USC碩士在讀)。我們三個大四狗組了個隊,喚作“老流氓”。作為流氓頭子,我愣是自己聯系,辦理手續,然後忽悠另外兩個老家夥們掏出了之前的比賽的獎金買了飛往日本的機票,使我們隊成為了近10年來清華第一支參加海外ACM賽區的隊伍(清華由于經費不夠,加上一些曆史原因,是不參加海外賽區的)。比賽比的很糟,不過三個老家夥在富士山下泡溫泉,在東京米其林餐廳吃壽司,爬東京塔也是挺值得懷念的。還記得當時莫濤癡迷某日劇(具體原因我後來黑了他好久),我們被忽悠着整個一天東京的行程都按照劇裡男主和女主的約會路線進行。傍晚,在東京的台場,莫濤望着遠處的彩虹橋,掏出了他的iTouch和我說:“你看,劇裡就是這個位置,這個角度,這個時間!”那蕩漾的眼神,一定會成為未來很多很多年,一個關于莫濤的經典槽點。

2014年,我來到了加州伯克利大學讀博士。很幸運,我遇到了兩個也再讀博士的中國隊友,姜碧野(NOI2009金牌,在清華ACM區域賽和莫濤一起拿過3次亞軍,代表伯克利參加了2014年ACM總決賽)和賴陸航(數學博士,IOI2010金牌,代表北大參加了2011年ACM總決賽),組成了伯克利中國隊。于是我又開始了我後勤部長兼隊内主碼的身份——反正我對這個角色早已駕輕就熟。我們很輕松的晉級了2015年5月份将在摩洛哥舉行的ACM總決賽。這對我們三個人來說,都是第二次,也是最後一次總決賽,也将是競賽生涯的最後一場比賽了。想想時間過得真快,從一個小孩到一個博士,關于青春的故事,也終要畫上句号了。

這段青春裡,有太多有趣的事,有趣的人。很多很多年以後,這些說不完、道不盡,也都化為老友相聚時的調侃和相逢一笑。我覺得,這也許就是生活裡,最美的喜劇。

最後的一些話

這是我的故事,感謝我有這個機會能把我的故事寫下來,也感謝前來閱讀的人。ACM不是生活的全部,甚至連一小部分都算不上——就像,寫完這些文字,我還得抓緊時間繼續準備我的論文,繼續我的研究工作。也确實是這樣,一個人的生活應該是豐富的,充實的和多彩的。生活應當像浩瀚的宇宙,壯闊卻又靜谧,ACM不過是那絢爛星辰中的一顆。宇宙不應因為少了一顆星而暗淡,但是卻可能因為多了一顆星而多了一段璀璨的文明。

代碼改變世界