饮水思源:北周·庾信《征调曲》:“落其实者思其树,饮其流者怀其源。”
谓喝水时应该想想水源。比喻不能忘本。亦作“饮水知源”,“饮流怀源”。
—— 题记
第29届ACM总决赛已经落下了帷幕,上海交通大学又一次摘取了桂冠。
现在,我才写下这篇回忆录,回忆参加初赛时的点点滴滴,是否有些太迟了呢?或许吧,但是,饮水思源,永远不会太迟的。
比赛时的点点滴滴,如今回想起来,还是像做梦一样。
人生非梦总难醒吧,只记得一些片段了。
记得,是比赛前两天的下午,沈老师开车送我们到交大闵行校区。
一路上,DC感觉不舒服,一直闭口不言;LHH则是闭目养神,也是一言不发。
到交大时,太阳已经有些西沉了。因为晕车,DC一直到晚饭时才缓过劲来。匆匆吃了晚饭,也没有参加交大安排的娱乐活动,就回到了宿舍。
虽然精神不太好,但开卧谈会的力气还是有的。
于是,我们就缠着LHH讲笑话和趣事,有些好象以前听过了,但“温故而知新”嘛。我回忆了一下,似乎我们有这样一个传统,每次比赛前都要LHH讲笑话,放松一下。他讲笑话特别有感染力,他的故事也特别地多。
后来,LHH回房间睡了。交大安排的宿舍是两个人一间的,我和DC一间。
DC就给我讲述动漫的基础知识,算是扫盲吧;我给他讲武侠,具体哪一部,忘记了。
第二天早上9点至10点是开幕式,地点在交大体育馆,也就是正式比赛的地方。
因为本次ACM决赛也将由交大主办,所以初赛组织得也不错,可能是为决赛做准备吧。就是场地小了一些,每个队一张桌子,四张桌子并在一起,感觉上挨得太近了。
开幕式依照惯例,没什么特别。然后是教练会和抽签。沈老师开完会,回来跟我们讲了注意事项,lty也来了。
下午,飘起了小雨。
热身赛是2点到5点,一共3个小时。我们提早来到了场外,就在门厅里站着。
看到了浙大的WishingBone,人家已经是领队了,而我们3个,还是参赛队员。
上次在北京也见过一面,我们乘一辆车去赛场,他就坐在我们后面,熊熊转过头,问他:“你就是传说中的WishingBone吗?”他回答:“是啊。” 熊熊说:“好崇拜你哦!我的偶像!”
我在一旁,汗如雨下。
LHH到印度去,听到印度ACM主办方对WishingBone的评价是“The best programmer of China”。
有交大的MM来采访LHH,他看了看旁边正在和队员谈话的郭嵩山教授,对MM说:“看到没?那是广州中山大学的教练,强人啊……”就这样摆脱了MM的纠缠。
后来,看交大团委宣传部编辑的ACM活动简报,果然有采访中山教练郭嵩山云云。
热身赛一共是4道题。
我做了Problem B-Labyrinth,最简单的DFS了。
接着LHH写了一题Problem A-Sum Up,然后在PC^2上按了一下“Test”,没反应,当时也没在意,就直接提交了。接着,DC写一道字串统计题Problem C-Information Retrieval,因为只有他会STL。
但是过了几分钟,悲剧发生了,DC发现竟然没法存盘了!重建工程也不行。只好找现场的技术支持,他也没办法,最后找来了总负责人,发现是有个进程把磁盘空间写满了。
其实是LHH按了“Test”以后,那个进程一直在运行,因为输入文件路径没有设置好,程序读入的全是随机数,也就结束不了,结果输出文件就越来越大,就把LINUX的空间全占了。
没办法,只好换一台计算机。可怜了DC快写完的程序。
正式比赛时,竟然发现压在键盘下面的比赛说明里加了一条,说是若发现运行异常,请查看任务管理器,并使用“-kill”命令终止进程。
把交大一台计算机给搞崩了,恐怕我们是第一队,也是唯一的一队了。
对此,深表遗憾和歉意……
DC接着写他那道题,可一直是-Wrong Answer。
在新东区餐厅吃了晚饭,挺丰盛的,我都怕回去以后,学校食堂要吃不惯了。
这时已是夕阳西下,华灯初上了。整个校园沐浴在一片金色的霞光里。
漫步交大校园,想要领略一下交大的风貌。
沿着小路走着,已经记不起看到了些什么了,只记得路上人比较少,可能因为是周末的关系吧,偶尔看到几个和我们一样身着ACM服装的队员。
至今留在我印象里的一幅画面是:朦胧的雾气笼罩着思源湖,湖对岸透出点点灯光的图书馆在夜色的映衬下,显得格外悠远与深沉。
回到宿舍后,DC继续研究那道Problem C。
突然,他大呼“花痴”,倒在床上了。说是知道犯了一个低级错误,“字符串处理低潮期啊!上次北大网络同步赛时也是……”,他叹道。
我说:“没关系,我也在广搜低潮期嘛!做一道挂一道,不过,就算我们两个全在人品低潮期也没关系,LHH状态好就行了。”
DC深以为然。
2004年12月5日,上午8:30分,总裁判敲响了铜锣,五个小时紧张的比赛终于开始了。
一共是10道题目,我们分了一下,三个人各自读题。
读完以后,我是一点想法都没有;DC也是一筹莫展。
LHH说那道Problem C-The Counting Problem他能做,就是需要时间。DC和我没有异议,这种题LHH最拿手,既然其它题目暂时没想法,就让他先写。
LHH写完后提交,但是-Wrong Answer。
这时我们发现,有些队已经过了那道“田忌赛马”Problem H-Tian Ji-The Horse Racing。这道题是我读的,以为是网络流,和DC商量了一下,就放在一边了。
这时又重新读了一遍,还是没想到什么好方法。LHH和我讨论,说是先试着写一下,我们就分情况列了一张表,他起先用数组写的,然后改成了链表。
写完提交,-Wrong Answer。
这个时候,DC说那道“欧拉路”Problem E-That Nice Euler Circuit有希望,并说了他设想的算法流程。
我觉得他说的流程太笼统,细节没考虑清楚,用程序也不容易实现。所以,不太同意他立刻按照这个算法写程序。
LHH改正了刚才程序里的几处错误,但还是-Wrong Answer。
我们觉得这种算法根本上有问题,再改也没用。LHH说先不管这道“赛马”,他重新做Problem C。
DC发现Problem E与欧拉公式有关。我试了一下,果然有:
边数-点数+2 = 面数
这样一来,就可以通过统计交点个数和线段数计算划分的部分数了。
拉来LHH,一起理了一下思路,定下了总体流程。
过了一会儿,LHH再次提交Problem C,-Yes。
我还在和DC讨论那道“欧拉路”。
LHH决定重写Problem H,孤注一掷,用贪心试试,如果还不对就放弃。
结果,竟然过了,-Yes。
然后,我们三个人一起写那道Problem E。
DC写STL,提高查找速度;我查计算几何库;LHH打字。
测了几组数据,没发现什么问题。
LHH看了看我,又看了看DC,点下了“Submit”。
接着,LHH站了起来,左右踱步;我和DC也在焦急地等待着结果。
前面的phoenix过了1道,队里有LHH的师妹。
四川大学的liulike没来,比较遗憾。来的这支队,实力也不太清楚。
全场已经有好几个队升起了3个气球。
-Yes。
LHH激动得叫了出来,引来了周围其它队队员的目光。
这时,比赛已经过了4个多小时,即时排名也不再刷新。
在接下来不到一个小时的时间里,我们又提交了一题Problem I-Islands and Bridges。
-Time Limited Exceed。
其实,这也在我们的意料之中。
13:30分,随着铜锣的再次响起,比赛结束。
沈老师、虞老师、lty和Bob Song已经等在场外了。
接下来,14:00开始,是交大各学院组织的各高校ACM队员的“娱乐互动”活动。
写了那么多流水帐,我觉得现在要讲的才是最重要的部分,虽然篇幅可能很短。
其实,所谓“娱乐互动”,就是组织各ACM队的队员一起做游戏。
与我们坐在一起的有同济大学和其它几个上海学校的代表队,好像还有来自香港的某大学,记不清了。
开始大家都还有些拘束,但随着游戏活动的进行,不断地接触,后来,大家已经是有说有笑了,会场里到处洋溢着欢乐祥和的气氛。
最后,还让我们用颜料,在纸上留下自己想说的一句话,也可以用图画的形式表达自己的心情。大家异常兴奋,无论写得好坏,画得如何,都来一显身手,不在乎别人的评说,因为这是属于ACM的时刻。
LHH轻声地说道:“这才是ACM!”
是啊,参加ACM已经三个年头了。
还依稀记得大一上半学期,万老师教C语言,那时还没讲文件操作,
我在研究生楼东南厅,参加ACM选拔考试的情景;
记得第一次集训是在实验十五楼314,没有网络,借了老师的电脑做题目,
那时,晚上在研究生楼教室听老队员讲算法,lty讲Graham扫描;
记得第二次集训是在计算中心102,当时那里的机器算是最好的了,
在三教,我们轮流讲算法,我讲的是高精度运算,那时三教还没翻新;
后来批了计算中心206,给我们使用,最疯的一次,一天过了12道题,
还记得那次,大家通宵做IPSC,早上在教工餐厅喝了碗粥,回寝室倒头便睡;
赛前集训一直是305,多少次给LHH带饭,多少次看到日落又日出,
最难以理解的,是LHH可以连续几天不睡;
每次练习赛,从早上10:00到下午3:00,做完大家都快不行了,又累又饿,
于是一起到校门口吃饭去,还记得Bob Song最爱吃土豆丝,每餐必点;
还记得出发前一天,也就是2004年12月2日,我们在ZOJ上的排名:
Rank User Solved Submitted AC Ratio
4 Meteors@ECUST 754 1597 47.21%
还记得,临行前做的最后一道题目,ZOJ2112 - Dynamic Rankings,
程序写了整整400行;
不要问除了上课,课余时间在哪里度过,
不要问放假期间,有几天是待在家里的;
比赛地点从北京清华到广州中山,再到上海交大,
每次都有新的感触、新的收获……
是啊,太多值得回味,太多值得珍藏的记忆了。
但是此刻,是我这些年从来没有感受过的。看到大家会心的微笑,真的希望“年年如今日,岁岁如今朝”,把这一瞬间的美好永远留住。
忘记了名次,忘记了荣誉,此时此刻才是最美的瞬间。
交流,友谊,这才是真谛,才是ACM生生不息的活力之源。
晚宴无话。
菁菁堂内,人潮涌动。
闭幕式暨颁奖典礼开始了。
我好不容易才找到位子,边上是清华的Magic 3和北大的PKU_Accept。
交大为这次饮水思源杯程序设计竞赛设置的奖项,名称很别致,金奖叫“金”诚所至奖和“金”益求精奖;银奖叫“银”水思源奖;铜奖叫“铜”心协力奖。
我们得的是银奖。
接下来,是ACM颁奖仪式,也是最有悬念的时刻。
“第九名,East China University of Science & Technology,华东理工大学,Meteors代表队”,我终于舒了一口气。
从交大校长谢绳武老师手中接过证书时,他说:“要向你们学习经验。”
我说:“不敢当,不敢当。谢谢。”
站在台上,看台下是黑压压的一片,闪光灯此起彼伏。
向着LHH和DC坐的方向挥了挥手,其实也是看不见他们的。
闭幕式之后是“ACM-ICPC”闪亮之夜文艺表演,一直持续到晚上10点。
从菁菁堂出来,走着走着,发现前面好象是浙江大学的教练,陈越姐姐。
LHH提议:“我们请陈越姐姐签个名吧。”
“正有此意!”,大家一致同意。
“可是没纸啊!”
我说:“没关系,签在胸牌上好了。”
“可是,笔呢?”,LHH立刻向超市跑去。
等买笔回来,陈越老师已经走远。
于是,我们奋起直追。如果那天晚上,你看到有三个人,一路从交大体育馆跑到住宿D区,那就是我们了。
终于让我们如愿以偿,虽然已是累得气喘吁吁。
回忆到这里,也就快接近尾声了。
其实,要把这几次的经历全写下来,足可以写几大本。
在此,还要感谢我们在交大期间的导游,王武士同学。
2005年5月6日
于嘉兴文苑里