(转)一个大牛的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不过是那绚烂星辰中的一颗。宇宙不应因为少了一颗星而暗淡,但是却可能因为多了一颗星而多了一段璀璨的文明。