首页 > 代码库 > ·转帖」 真正的ACM

·转帖」 真正的ACM

TEAM对我意味着什么 ceshi 2008-04-16 22:25:16.0

这个世界是假的,而TEAM是真的。
什么是“假”?活在这个世界上,要说很多违心的话,做很多违心的事。为了自己或者小集体的利益,有的时候要说谎,有的时候要装傻,甚至要恭敬地面对一些无耻小人。长久下去,你会忘记什么才是真的,会认为一些不道德的事是理所当然的,因为它们普遍地存在于这个世界上。
TEAM是一个避风港。更确切说,是交大ACM队这样一个最优秀的TEAM。只有这样的TEAM,才能提供一个“真”的环境。

我没有足够的博爱精神,不可能真诚地对待所有人。让我真诚面对那些我讨厌的人,Mission Impossible。但是,把范围缩小一下,变成一个三五人或者十来人的TEAM,我还是能够做到真诚的,只要这个TEAM足够优秀。
在队里,并不意味着我一句谎话都不说。不过,我做任何一件事,不管方式是好是坏,出发点总是好的,最终都是为了让这个队变得更强。
记得hehe曾经说过,队友对你的好,也许只有你的男朋友可以做到。的确,如果不是同在一个TEAM中,你不可能什么事都设身处地的为别人着想;不可能为别人做这么多事;更不可能花费很大的代价,最终只是为了别人的提高。
一个优秀的TEAM,可以给人一种回家的感觉。虽然你在队里可能要做很多对自己没有太多实际利益的事情,但是这个队可以给你极大的心灵慰藉。她时刻告诉你,什么才是对的,什么才是美好的。这是一种心理的需求。

可是,交大ACM队不是长久的地方,我的下一个TEAM在哪里呢? 
用脑子比赛 ceshi 2008-04-16 22:25:49.0 
可能有人会说ICPC是一个脑力的竞赛,当然是用脑子去比的。其实不然,绝大多数的队伍都不懂得用脑子去比赛。果真是这样的吗?恩,至少我是这么认为的。

谈起这个话题,不禁让我回忆起自己大一时的事情。
2002年10月29日,那时我所在的队伍刚刚在北京赛区失利,紧接着又要去韩国赛区。29日是我们走之前的一天晚上,lincx把我们叫到徐汇校区,和我们一起总结北京赛区的比赛。
北京赛区是一场难以形容的比赛。表面上看起来,我们队几乎没有犯任何错误,但结果是我们输掉了比赛。
我记得,总结的时候,lincx并不直接指出我们队哪里有问题,而是从自己的角度向我们介绍,如果他们队来做这套题,会怎么做。
在lincx这支队里,队友读了题,都必须告诉他——lincx总是知道所有已经读出来的题目,从而很清楚地了解场上的情况。lincx形容自己要做的事,就是对所有已知的题目不断地“排序”,取出最简单的题目去做。
我想,“排序”这个词可能未必非常恰当,但是很形象。它描述了一个队长在场上需要做的事情:队长就是要时刻了解场上的最新情况,通过思考,作出正确的判断,决定本队的走势。“排序”是一种最简单的分题策略,也就是先做简单题,后做难题。当然,对高水平的队伍来说,分题的顺序是很有讲究的,并不仅仅是“排序”这么简单。

至此,我终于明白一支队应该如何去比赛了。
队长就是一支队伍的大脑。队长的脑子必须运转起来。如果队长在场上不冷静,不能够审时度势,作出正确的判断,那么这支队伍就不可能用脑子去比赛。
同时,我也明白了,我们在北京赛区不是没犯错,而是步步皆错。对一支没有章法的队来说,决策本身已经错了,即便执行得还可以,也不能改变错误的本质。

我想,正是这个时候,我开始真正懂ICPC了,也开始具备了当一个队长的基本素质。因为,我知道了队长在队中的作用。

插句题外话,那天晚上lincx对我说的另外一句话,影响了后来我对Comars的使用。他说,他觉得我在机器上的时候非常令他放心,但是一旦坐在机器下面,他就不知道我在干什么了。而北京赛区的比赛,我在开赛45分钟左右对了第二题以后,就一直做在机器下面……
所谓资源优化配置,就是用人要用其长,避其短。如果像lincx所说的,我坐在机器上敲代码比较令人放心,那么就应该尽可能多地让我去敲代码。队里最怕的是:1. 大家抢着敲,以为谁敲得多,谁就是英雄;2. 搞平均主义,每人敲三道。
我发现,我作的很多决策都是受了别人的影响。lincx自然是最多的,yini也不少,还有hehe(以后有机会可以再说一些 :D)。优秀的队长身上总是有很多东西可以借鉴。

还是回到正题。
这个赛季,作为教练,我经常有机会看各队队长的总结。其实,我最喜欢在总结里看到这样的话,“n小时的时候,我们对了x道题,并且有y道题可以做。场上的局势是……我们准备……”我自己写总结的时候也比较喜欢写这样的句式。如果一个队长能够说出这样的话,那说明这个队长在动脑子——判断场上的局势,根据自己的情况,制定下一步的计划。特别是对于那些要敲题的队长,更需要做这样的事。因为队长敲题意味着暂时放弃对局面的控制,所以必须在上机之前做好总结工作,安排好后面至少半小时的计划。 

人们可能会比较自然地去关注一些出彩的地方,比如说某人一场比赛做了七八道题,或者最后几分钟对了一道题(特别是又拿到冠军的),并称之为英雄。我觉得,光做到这点,充其量叫做野人(比常人力气大一点)。要成为英雄,还必须用脑子。我认为,英雄善于以用自己的智慧和实力。面对实力弱于自己的对手时,要将对手玩弄于股掌之间,不给别人任何机会;面对实力相当或高于自己的对手时,要懂得迂回前进,争取最大的取胜希望。或者,借用yini的话,就是do more with less。
所以,当主持人说出,全场的队伍都受到某人的误导时,我深为不能赞同。因为,这不是应该强调的地方。如果这都值得强调的话,那么只能说明这支队不是一支用脑子去比赛的队。而一支不动脑子的队,在面对真正的强队时,一定是不堪一击的。 
原则 ceshi 2008-04-16 22:28:10.0 
做人有做人的原则,做事有做事的原则。同样的道理,作为一支队,也应该有它的原则。 

什么才是一支队的原则呢?举个例子吧,在Spirit队中,有一条原则是,Comars是核心。任何与这条原则相背的事必须让路。比方说,我和Tiaral抢Comars的题就是不允许,因为与原则相背。我和Tiaral必须想尽一切办法让Comars能够集中精力做更多的题。
也许有人会觉得这条原则似乎不那么有道理。的确,我也不能证明它一定最有道理的。但是,这是根据我对Comars的了解,经过长时间思考作出的决定。我觉得,它在绝大多数情况下还是正确的,并且也征得了队友的同意。

一支队有了原则以后,会带来什么样的变化呢?有原则的队,有很强的凝聚力。因为,一旦意见出现分歧,就可以搬出原则来,与原则相背的一律否决;与原则不相背的,一定不会很重要,大家都不会太在意。这样的队,可以做到意见高度统一,从而使战斗力得到充分发挥。

那么,是否有可能因为制定了原则而否定一些更好的决策呢?是有可能的。但是,我一直相信,比决策优劣影响更大的是意见的统一。一个决策,哪怕不是那么优秀,如果大家齐心合力去做,同样能有很强的战斗力。反之,决策很好,但是大家不齐心,只可能是一盘散沙。

在队里,我非常喜欢去树立一个核心,因为核心是最好的原则。 
Cappuccino ceshi 2008-04-16 22:28:46.0 
最近我一直在想,这四年来究竟有哪些队是可以作为借鉴的。想来想去,大概有三支吧——Team W、Cappuccino和Princeps。
为什么是这三支队呢?他们不能算作真正的强队,他们的战术思路与交大传统的强队模式也不太一样。但是,作为一支队来讲,他们做得同样相当出色。
今天就先谈谈Cappuccino吧。Team W和Princeps我想放到以后一起讲(写到一半写不下去了,就先存在草稿箱里吧 :D)。

Cappuccino是2004年北京赛区的冠军。但是,他们的价值,却一直到了去年北京赛区结束,我才真正意识到。实际上,2005年的Eccentric和2004年的Cappuccino相比,唯一区别就是用Azazel换掉了Ivan。按理说,Azazel的技术实力远高于Ivan。但是,真正到了比赛场上,我们发现,没有Ivan就是不行。

Ivan,借用abcsea的一句话来说,他思考过很多问题,人际交往能力爆强。我至今还记得他参加面试时说的一句话。他说,他来参加这个比赛,是“把交大的ACM当作一项伟大的事业去支持”。我觉得,就这句话,决定了他一定是个优秀的队长。
我也面试过别人。一个晚上,十几个人,每个人都是千篇一律的“对自我的提高”,会让你听得昏昏欲睡。Ivan,他能看出比别人更本质的问题,说出比别人更本质的话。(说到这里,也就可以解释,为什么Ivan人际交往能力爆强了)
正因为Ivan能看到更本质的东西,作为一个队长, 他比别人更能看清他们队需要什么,从而做出更准确的决策。另外,超强的人际交往能力,也有利于他使用好他的两个队友。

说了这么多Ivan,有点冷落Ivan的两位队友dysentery和cobra了。其实,Ivan能成功地组建起Cappuccino这样一支队,与dysentery和cobra出色的能力是分不开的。
dysentery最大的特点就是有很强的责任心。举个例子吧,在队里的两年时间里,大半的饮用水都是他搬的(当然,和他长得比较高大也有关系)。一个做事认真负责的人应该怎样去使用呢?我想,对Ivan来说,小事一桩啦。
cobra是个有思想的人,悟性很高。lincx每次和大家聊天,别人都被lincx一个又一个生动的故事吸引。只有cobra,全神贯注地听,他要听的是lincx说这个故事的意图。善于思考的人,往往善于控制自己;善于控制自己的人,往往有比较好的心理素质。cobra就是一个心理素质极好的人。前年的北京赛区,最后10分钟,顶着巨大压力改出Cappuccino第5道题、从而奠定胜局的人正是cobra。我想,换一个人,在当时的场景下,很可能早就奔溃了。

Cappuccino和Eccentric这两支队,无法让我不去比较,因为这两支队相差的只有一个人。从技术角度来看,不消说,Eccentric远高于Cappuccino。不用说Azazel强于Ivan了,就是dysentery和cobra,经过一年的训练,也比他们第一年比赛时强了许多。但是,为什么给人的感觉却是Cappuccino更好呢?
我喜欢将实力分为技术实力和非技术实力。Azazel强于Ivan的,是技术实力。而Ivan给队里带来的更多是非技术实力。
参加过比赛的人一定会有这样的体会,有的时候你觉得可以做六七道题的比赛,最终可能只做出三四道。也就是说,你的技术实力只发挥出了一半。非技术实力(包括思考问题的深度、准确度,关键时刻的冷静程度等)就是用来发挥另一半技术实力的。
Ivan的眼神、动作,他说出的话,更重要的是他作出的决策,为Cappuccino营造了一个良好的氛围。所以,有Ivan在,Cappuccino队员的能力总是能够得到充分的发挥,从而变相提高了技术实力。

Cappuccino的成功告诉我们一个道理:在你贪婪地提高着技术实力的同时,千万不要忽视了非技术实力的培养。

后记:写活着人真的很难。特别是Ivan,更难写,因为猜不透。写得不对的地方还请批评指正 ^_^ 
代码能力 ceshi 2008-04-16 22:32:29.0 
在ICPC比赛中,个人能力方面,如果粗略地分的话,大致可以分为算法能力、代码能力和查错能力。那些大学才开始参加比赛的选手,写代码的基本功一般会比较扎实,主要瓶颈应该是算法能力。而对于OI转ICPC的选手来说,代码能力往往是最大的缺陷。随着OI转ICPC的选手逐渐增多,代码能力的问题愈发暴露了出来。

一、如何定义代码能力

Comars曾经给代码能力作过一个比较准确的定义。2004年暑假时,Comars曾经说过:他认为150行以内的题目,他的1Y率非常高,并且保持稳定;而当代码长度超过150行以后,1Y率就开始急速下降了。如果我们画出一条1Y率的曲线的话,150行就是一个转折点。我们不妨认为,150行就是Comars当时的代码能力。一年以后,经过努力,Comars把代码能力提高到了250行。不过,这已经是后话了。

二、如何提高代码能力

我一直觉得写程序和写文章是一个对很好的类比。

写文章需要先从宏观入手,构思文章的结构。写程序同样需要。一个好的结构,就是一个好的开始。一个好的开始,是成功的一半。
一篇好的文章需要各种句式和词藻的合理组合。体现到写程序上来,就是一些单句以及三五行的小结构的熟练使用。这些都是需要平时总结和积累的。

但凡文章写得好的人,一定看过很多别人写的文章。同样的道理,多看别人的程序,用心地去看,也可以提高自己的代码能力。
我鼓励队员去看别人写的程序,特别是像Comars这样的选手写的程序。从优秀的程序中,我们可以体会别人良好的程序结构,同时也可以学到很多写程序的技巧——三五行的小技巧。在和Comars做队友的两年时间里,我通过看Comars的程序,学会了很多小技巧。逐渐地,我觉得我写的某些程序已经和Comars有点相像了。
那么,如果身边没有Comars这样优秀的选手可以借鉴,该怎么办呢?其实没关系。任何一个程序都是可以看的。一个程序,就算写得再差,总还会有一两个闪光点,要想办法把它们找出来。另外,程序里写得不好的地方,也要一一找出来。
读程序,从某种角度来看,就像读史。好的历史是用来借鉴的;不好的历史则应该引以为戒。读程序也是一样,择其善者而从之,其不善者而改之。

三、谨慎地对待STL和SCL 

STL - Standard Template Library。在ICPC的选手中,STL是相当受欢迎的。的确,如果STL用得好,程序可以精简很多。既提高了编程的速度,也提高了编程的准确性。
SCL - Standard Code Library,就是标准程序库。对很多选手来说,SCL可是命根子啊 :) 

我觉得STL和SCL都不是坏东西,但是需要谨慎地使用。

我向来不主张队员一进队就开始用STL(虽然这种现象普遍存在 :()。我认为,STL的作用是锦上添花,而不是雪中送炭。比方说,一个heap写得很熟练的队员,我觉得他可以偷偷懒,用一下STL。但是,那些不太会写heap的队员,就不应该用STL里的heap。因为,他们真正应该做的是掌握写heap的能力——这才是最本质的代码能力。
学会用STL是件很爽的事情。但是须知有所得必有所失。如果过早地接触STL,会让你失去很多锻炼代码能力的机会。

至于SCL,我的主张是尽量不用。
不可否认,队里确实有一些人SCL用得很好。但是,我至今仍然没有见过一个SCL用得很好,同时有拥有很强的代码能力的人。同样是有所得必有所失,你平时习惯了去抄程序,必然少了很多自己构思程序的机会,从而影响代码能力的提高。
当然,我也不是完全反对去使用SCL,偶尔用一下也是可以的,例如在比赛中。但是,需要注意的是,一定要用自己整理的SCL。我见过有人拿着一本别人整理的SCL,虽然内容很齐整,但是我没见他用对过。因为这本SCL不是他整理的,他自己都不知道每个程序在使用的时候应该注意些什么,于是一用就错。

后记:其实代码能力这个话题让Comars来讲可能更适合一点,因为他更有心得。不过他现在忙于杀鸡 :) 
FAQ ceshi 2008-04-16 22:33:17.0 
整理了13个以前遇到的问题,如果想起什么新的问题的话,再慢慢更新。
(注: 这其中有很多问题和回答都是从别人那里记下来,或者根本就是别人整理的)

1. 就快要比赛了,我们队还存在很多问题,怎么办?

正视你们的优势和劣势,承认它们的存在。
借用yini的话,比赛就是一个“do more with less”的过程。你要清楚自己的more和less。无论自己是more还是less,我们就是要去do more。 

2. 比赛前应该想什么?

有人说,比赛前应该完全不想比赛的事情,放松自己的心情。我觉得这并不是很妥当。
在我看来,比赛前就应该去想比赛本身,把全部精力放在比赛上。可是,这难道不会影响心态吗?我认为不会。所有影响比赛心态的事都不属于比赛本身,例如排名、胜负,都是比赛以外的事。

3. 比赛中,领先了怎么办?落后了怎么办?和对手咬得很紧怎么办?出现问题怎么办?

比赛中有很多种状态,领先、落后、平分秋色、稳定、混乱……但是,归根结底,这都是一些状态。
对于自己所处的状态,我们要以局外人的眼光来看待,这样才能作出理性的判断。
作为局内人,我们需要知道,已经发生的事不可改变,我们可以做的就是在剩下的时间中do more。
注意,do more不等于“拼命”,还是要理性地去分析自己究竟还能做多好。

4. 自己或者队友实力太弱,怎么办?

很多人都会钦佩实力强的人,鄙视实力弱的人。但是,最起码在一支队里,这样的事情不应该发生。
我们要清楚每个队员的强弱,用纯理性的眼光去看待这些问题。你可以为一个队员的不足而着急,但是决不可以为此而埋怨他/她(或许完全做到这一点是不可能的)。
实际上,无论是谁,放在队里一定是有用的。再不济,读题的事情总可以做,还可以模拟sample、出一些测试数据……不要认为这些事情是低级的。它们和想算法、敲题一样,都是对队里的贡献。你可以想想,有谁可以跳过读题,直接去想算法、敲程序的?

5. 如何面对自己的队友?

如果可以把一支队看成一个整体的话,那么为什么不把它比作一个人呢?这样一来,每个队员就相当于身体的一部分。似乎没有哪个人的左右手是会分彼此的。如果这样去想(注意,是要这样去想,而不是仅仅懂得这个道理),我觉得你已经不需要再讨论这个问题了。

6. 对手太强了,怎么办?

如果你完全不是他们的对手,那为什么又要称他们为“对手”呢?
前面也提到了,比赛就是一个“do more with less”的过程。即便你们是全场最差的队,即便你们根本没有实力去争取哪怕是一个倒数第二的名次,你们同样可以do more。
可能你99%会输掉这场比赛,但是请你正视这个概率,勇敢地去面对可能到来的失败。

 

7. 以我们的实力,根本不可能成为强队,怎么办?

强与弱只是相对的。
校内的强队,到了分区赛可能会变成弱队。分区赛的强队,到了决赛可能会变成弱队。
题目简单,会使弱队看上去变强。而题目如果很难,强队也会变弱。
不管怎么样,我们可以撇开成绩、对手、题目、自身实力等所有外界因素,从本质上去看一支队。这个时候,你会发现,实际上最强的队不一定就是那些冠军队伍。而你,可以努力去让自己的队伍成为最强的队。

8. 题目太难怎么办?

我不是很清楚为什么题目太难。其实,换个角度来看,这个世界上并不存在难题。只有“题”和“非题”。
什么叫“题”?就是你用有限的时间(对于比赛来说是5个小时)可以做出的题。
什么叫“非题”?就是不可能做出来的题。
至于题目会有难易,实际上是因为我们给题目加上了对自己的“要求”。试想,一道简单题,如果要求1分钟内完成,是不是会变成难题?一道难题,如果给你一个月的时间去做,是不是就简单了?所以,本质上来说,题目是没有难易的。
说到这里,也许你已经明白了,当你抱怨题目太难时,一定是计划作错了。 

9. 我们队还有很多事要做,该如何处理?

事情是永远做不完的。对于一支队来说,它的生命往往不会太长,多数不超过一年。不要指望能做好十几件事。我可以毫不夸张地说,如果一支队能够真真正正地做好一件事,这支队一定很强。
所以,如果你可以判断哪件事最重要,请先集中精力做好这件事。如果不能判断,就随便做一件。切记,不要总想着几件事情同时做好,这样的结果往往是什么事都没做好。有的时候,我会觉得,做事和谈恋爱没什么区别,不能花心,必须把精力集中在一点才能做好。

10. 我们的进步速度总是不如预期,怎么办?

没有关系。每个人的预期总会或多或少的带点理想的色彩,所以实际的效果一般来说总是不如预期的。有时,甚至会出现只有预期的1/3到1/2的情况。但是,只要你坚持不懈地去做,不动摇自己的信念,最后的成绩一定不会差。记住,你遇到过的困难,你的对手也会遇到的。

11. 虽然什么都想清楚了,可我还是有很多顾虑,怎么办?

我不知道你是如何看待宗教和迷信的。我觉得宗教和迷信的作用就是用来解决人力所不能及的问题。
人不可能参透一切,胜负、名次也不可能完全看破。每个人都想拿好名次,只不过想多想少而已。而这些东西,并不完全受你支配。很大一部分是你力所不能及的。
我不是一个喜欢带挂件的人。脖子上挂样东西,会让我感到不自在。但是,每次参加比赛的时候,我总会让自己带一个挂件,多数情况下是一个十字架(在梵蒂冈拿的,我觉得比较神圣^_^),有时是我心爱的球队的队徽(自己做的,非常亲切)。不是说我迷信,而是因为这些东西在我心目中比较圣洁,我愿意将自己的愿望交给它们去保管。
我平时都是穿皮鞋的。但是以前出去比赛,我都会带上一双球鞋,因为我穿皮鞋没赢过(不过这个规律在2004年日本赛区被打破了)。
我有一条裤子,虽然我很不喜欢它,但是每次比赛我必穿这条裤子,因为穿这条裤子时我保持不败。
在我看来,迷信是对人的一种心理暗示,它可以让我们忘却最后的顾虑,集中精力做好应该做的事。

12. 比赛前有同学来找我玩,该如何处理?

相信参加过北京赛区的选手对这个问题一定不陌生 :)
我的观点是,就看比赛对你来说有多重要了。如果你只是来玩玩的,那么顺便和同学叙叙旧也没什么大不了的。如果比赛对你很重要,那么我可以告诉你,根据规则一个人一辈子最多只能参加7次ACM-ICPC比赛(5+2),而和同学叙旧的机会是很多的。花点钱买张飞机票,几个小时后就能见到同学,但是比赛的机会却不是用钱可以买的。不要说你想兼顾好两件事,请先把其中的一件事做好。或许你可以放弃比赛,并和同学痛痛快快地玩一场。

13. 比赛前队友之间为了一些和比赛无关的小事情发生争吵怎么办?

转化内部矛盾为外部矛盾。最后关头,比赛只是三个人的事情,整支队的观点只要保持一致,即便是错误的也无关大局。所有的问题都可以在比赛之后再解决。
心理素质 ceshi 2008-04-16 22:33:46.0
记得去年5月和lincx谈起队员的心理素质问题时,lincx曾经建议我写一些东西,因为他觉得我刚进队时心理素质也不太好。

我觉得人与人还是不太一样的。有的人生来心理素质就好,越到比赛越能发挥。有的人却恰恰相反,一到关键时刻就掉链子。
实际上,心理素质不好的人是很痛苦的。当比赛临近时,他们会不停地暗示自己,“这是一场重要的比赛”“三年的努力,就为了这一刻”“不能失败”……他们也知道自己不该这么想,但越是告诉自己不要去想,却越是提醒了自己,也就无法摆脱身上的包袱。

心理素质往往是由人的性格决定的。例如,多愁善感的人很少有心理素质好的。但也不是没有补救的办法。
我曾经和lincx说,“心理素质是可以练的”。现在想想,这句话似乎不太妥当。应该说,心理素质几乎是不能练的,因为性格是很难改变的。然而,只要努力的方向得当,我们还是有办法在局部(或者某一方面)掩盖心理素质的问题。
我想,很多人还是怕死的。为什么怕呢?因为没经历过,甚至没有人能告诉你死是怎么一回事。完全未知的东西往往是可怕的。面对死亡时,相信绝大多数人都会紧张。比赛也是同样的道理。太多的未知情况,让我们变得没有把握。于是,我们在赛场上会紧张。
什么样的人不会紧张呢?看破生死的人不会因为即将到来的死亡而紧张。对于比赛,我们也要把它看破,理解它的真正含义,而不是只在“胜”与“负”两个字之间兜圈子。

在参加最后一次Final时,我只想把这场比赛比好。这是每个人都懂的道理,但重要是你不光要明白它,还要把它写到你的潜意识中去。
Team W ceshi 2008-04-16 22:34:29.0
本来想把Team W和Princeps放在一起写的,因为都是女队,而且我总觉得这两支队之间有着千丝万缕的联系。不过,考虑了很久,最后还是决定不写Princeps了。
与Team W和Cappuccino不同,Princeps的队员尚未结束她们的比赛生涯。现在对她们作出评价,一来是不准确的,二来也可能影响到她们今后的训练和比赛。这是我放弃Princeps而只写Team W的原因。

2002年,交大成立了历史上第一支女队——Team W。我想以一次训练作为开篇来介绍这支队。
那是暑假的一次训练,具体日期已经记不清了。那次训练发生了一件不可思议的事——lql在机器上几乎坐满了5个小时,连饭都没有吃。训练结束后,大家都忍不住向她们询问到底是怎么回事。记得hehe的回答非常直截了当:“我们今天战术是lql单挑”。当时我们都笑了——这个战术是多么可笑啊!
可是,多年以后,当我再度回忆起这次训练时,却发现可笑的是我们自己。换作如今的我,遇到这样的题和这样的队,肯定会毫不犹豫地选择让lql单挑。Team W做到了实事求是。她们是战术是根据自身的实力以及题目的情况来制定的,而不是淤泥于所谓的“好的战术”。
因为这次训练,我丝毫不怀疑Team W是一支优秀的队伍。

Team W的三名队员是hehe, zwt和lql。
遗憾的是,我和zwt不太熟,无法作比较详细的介绍。zwt给我的感觉是那种成绩非常好的女生。貌似她在联读班也很有影响力,连helen这样低她五届的联读班新生都能听到她的名字,还管她叫pljj ^_^

lql和我是同班同学,因此接触得比较多一些。她是一位非常令我尊敬的女生。
很多女生都会以体力不好为由,给自己放假。lql从不这样说。在她的口中,永远只能听到“太懒”“努力不够”“差距明显”之类的话。而我亲眼看到的是,她不停地在工作。我觉得,lql每天的工作量应该超过绝大多数男生,至少肯定是超过我的。不过,她从不满足。她总是和最强、最努力的男生去比,发现自己的不足。对于lql,我已经不能以一个普通女生的标准去衡量她了。但是,即便放到那些最优秀的男生中去,她依然是那么强悍,虽然实际上她长得很娇小 :)
撇开学习和工作不谈,lql给人最深的印象应该就是人品好了吧。要说我们班人品好的人,我可以列出一大串来。但是,把这些人放在lql面前,就根本谈不上了。lql记得我们班每个人的生日。每当班里有同学生日,她都会及时提醒大家给他/她送上祝福。我一直觉得我们班很团结,或许这里面就有lql很大的功劳。lql还是个处处为人着想的人。她总是先想着把别人的问题都解决了,然后才处理自己的问题。有一次思修课点名,她替所有人都签了到,最后却忘记给自己签上了 :( 我想,换作我,一般都会先签上自己名字的,再想想是不是给别人也签几个。同样是给别人签到,差距还是能从细微处体现出来的。
我一贯认为,lql的实力,来自于她高尚的品格。这样的人,怎能令我不钦佩?

最后,也是压轴的,自然是Team W的队长hehe了。
yla曾经问过hehe,“你是不是和什么人关系都很好?”这句当时开玩笑的话,却是对hehe的很好表征。不过这还只是表象,不是本质。一个烂好人也可以和所有人相处得很好,但那决不是hehe。
还记得第一次与hehe聊天,是2002年的校内选拔赛时。安排位子的时候,我恰好坐在hehe旁边。由于系统问题,比赛被推迟了很久,于是我们就聊了起来。那天hehe很郁闷,早上去考四六级口语忘带准考证,因此言语中多了几分感慨。其实,我们聊的都是些琐碎的东西,例如江苏省队(我们都来自江苏)、交大、选择联读班还是试点班……不过,我对hehe的认识就是通过这次谈话建立起来的(其实是多年以后回忆这次谈话时想到的,那时还过于稚嫩)。hehe是个理性与感性兼容包并的人。当我说自己有意留在联读班时,她会问我留在联读班学那些课程(抱歉,具体科目已经不记得了)的目的。这说明她是个理性的人,做事之前会经过深入的分析。不过,在谈到忘带准考证的事时,她又会感慨到“今天来到徐汇校区就是一个错误”,这无疑是感性的表现。
我觉得,感性的人,善于去感受这个世界,往往有比较好的悟性。但是,感性的人,也容易把一件事情想歪,或偏激或钻牛角尖。理性的人,强于分析,能够把住正确的道,不会走偏。但是,过于理性,则缺乏感知能力,创造力不足。最强的人,应该感性中带有理性、理性中不失感性,hehe正是这样的人。她清醒、睿智,同时又不乏敏锐的观察力和丰富的想象力。
插句题外话,差不多正好是两年以后,另一位出色的女队队长abcsea参加完队里第一次训练的晚上,我和她有过一次聊天。这次聊天中,我从abcsea的身上看到了hehe的影子(碰巧这两人的QQ头像又是一样的 ^_^)。abcsea也是一个感性与理性兼容包并的人。hehe这个先例使我认定abcsea是天生的队长人选。于是,一种迫不及待的冲动让我想要去跟她说一些东西,那些作为队长应该要注意的东西。
如果要对近四年(我在队中的四年)中的所有队长做一个排名,我个人认为,hehe应该在前三。她在队里做了很多事情,取得了两个最佳女队奖。她的认识达到了相当的高度,对队里的影响一直延续到了现在,并且还将继续延续下去。
我在做队长和教练的时候,经常会去回忆hehe当年的言行。细细体会,往往能得到很多收获。实际上,我的很多决策都是建立在hehe的基础上的——2005年的世界冠军中也包含着hehe的智慧。

这些年来,队里一直流传着这样一个故事。2002年北京赛区之前,hehe把RobertLu叫到房间里,为女队鼓舞士气。怎么鼓舞呢?方式有意思。女队队员们不停地问,“我们****还做得很不好,怎么办呢?”RobertLu则说,“没关系,其实我也做不好。”世界冠军都没做好的事情,又有什么可担心的呢?^_^
Team W在平时训练中经常处于劣势,需要更多的鼓励,让她们建立起自信。hehe曾经说过,“Team W做得不好的时候,我要鼓励;Team W做得好的时候,我更要鼓励。”这应该是Team W的治队原则之一吧。我想,Team W在北京和西安两个赛区的出色表现,与她们的自信是分不开的。调整心态这一环节上,Team W做得无疑是相当出色的。
今年由于做教练的缘故,我遇到了不少女队的问题。我曾经多次找lql讨论,学习她的经验。lql给我说了很多她们队的事情,使我了解了女队与男队的区别。我想,在这之后,我说的很多话、做的很多事都在很大程度上都受到了Team W的影响。

2005/06赛季,我们很欣喜地看到Princeps拿到了韩国赛区的冠军。这个韩国赛区冠军,创造了很多个“第一”。然而,Princeps不是一年建立起来的。我们在赞叹Princeps的冠军时,千万不要忘了,2002年,交大有了第一支女队——Team W。hehe, zwt和lql,在四年前已经开始了女队的夺冠之旅。而这个梦想终于在Princeps身上得以实现。 

后记:
我喜欢去欣赏一支队伍,并不仅仅欣赏她做出几道题。我更喜欢看到一支聪明的队伍,冷静的队伍,用脑子去比赛的队伍。这样的队伍并非一定要是冠军,但她们同样是最好的队伍。
因此,我喜欢去欣赏2002年的Team W和2005年的Princeps。
——多年以后,当我回忆起2002年的交大队伍时,惊奇的发现,原来Team W才是最好的;
——2005年的北京赛区,当人们把目光聚焦bomber的时候,我却更赞叹Princeps的表现,她们完成了一场伟大的比赛,甚至比韩国赛区夺冠还要伟大。
过去的已经过去了,交大的女队还要继续前行。但是,我们不能忘记过去。正是有了过去,才有我们的现在。因为有了现在,我们还要继续开创未来。这就是继往开来。
我是怎么搞ACM-ICPC这个竞赛的? ceshi 2008-04-16 22:35:07.0
想来想去,无非就是两点:1. 好的环境;2. 跟大牛。
还是先说说跟大牛吧。这个大牛自然是lincx啦。从进队的第一天起,我就开始模仿lincx的套路,一直模仿到了2005年拿到冠军。虽说是模仿,但这一路做下来,基本上算是深刻理解这一套路的原理了。接下来,就是我自由发挥的时候了。
至于好的环境,当然也是必不可少的。因为没有这样一个环境,我根本就没有模仿lincx的条件。没有这样的环境,我也没有发挥的余地。环境是一切的基础。
想起了前年暑假 ceshi 2008-04-16 22:35:32.0
那时我们队每次训练结束后都会迅速离开机房。因为当时队里有一个“不好”的风气,训练结束后总会有很多人过来问我们题目怎么做,从A开始,一直到I。
我认为,一场比赛5个小时,需要考虑的是如何利用现有的能力尽可能把比赛做好。所以,比赛结束后,我们队首先要讨论的是,如何在现有情况下做得更好,而不是每道题目怎么做。如果5个小时的训练仅仅是为了解决8~10道题目,那么它的价值就太小了。于是,我们队做的就是迅速离开机房,去讨论我们应该讨论的东西。
UVa比赛 ceshi 2008-04-16 22:35:59.0
第一次做UVa的比赛应该是高二的时候,那时网上比赛这个概念刚刚出来,我们也才知道,原来上网还能参加比赛。
那是2001年1月27日,UVa的第16场Online Contest(今天这场是第148场),题目是UVa Problemset的10080到10084。按照现在的水平,这5道题估计两小时内应该能做完了。这次比赛,我的成绩是0道。其实我写了3个程序,但是交上去都是Compile Error,并且不知道怎样才能改对。当时的UVa Pascal编译器是GNU Pascal (GPC),要求很怪。例如一定要加一个Program XXX(input, output),否则会Compile Error;再如,fillchar(a, sizeof(a), true)会Compile Error。总之,我一直不知道。于是之后的半年里,我在UVa比赛中的每次提交都是Compile Error。
后来,在和师兄WRS的共同努力下,我们终于克服的Compile Error的难关,开始在比赛中对题。而且,我们有时还能做出很高的排名,当然是作弊的(多台机器一起做,还用马甲)。

高三的时候,开始比较认真地接触ACM-ICPC,我才发现,要想不作弊地在UVa上取得一个好名次,还是有相当难度的。那时的UVa,有Meteors(02年总冠军), Saratov SU#3, Warsaw Eagles(03年总冠军),还有LML,强队挺多的。我是一个新手,还只有一个人,比赛开始后一两个小时就被别人(其实不是别人,就是LCX, LJ & ZJ)以2~3倍题数领先。那时的我居然还想在UVa比赛中拿第一——主要是因为水平相差太悬殊,以至于都不知道别人比自己强多少了。现在回想起来,当时的UVa比赛可以说是鼎盛时期,水平一点不亚于World Finals。

大一的时候,因为Meteors退役了,Saratov SU#3和Warsaw Eagles没来参加,我们在UVa比赛中还能取得不错的名次。我们主要的对手变成了ZJU。那年的ZJU正处在巅峰,而我们的实力尚未起来,所以我们在比赛中甚至处于下风。即便是在北京赛区,我们也有点害怕ZJU。我记得,这年,我们有过一次在UVa比赛中拿第一的经历(也是唯一的一次)。那次比赛好像才5道题,我们以微弱的时间优势赢了ZJU。
大一的寒假,因为没有进Final,我基本上都是单挑做比赛的。那段时间的单挑让我的实力长了不少。我想,主要原因是我基本的实力达到了,可以开始和其他队有竞争,再加上单挑的压力,成长速度特别快。这段时间,我单挑的成绩可以稳定地保持在前十了。我觉得,如果能稳定在前十,那么单挑UVa就会有很大的收获。否则,跟不上前面的队,那么单挑的价值就会降低。

大二的时候,我们的实力有了进一步的提高,在UVa上能经常拿拿第一了。当然,这和Saratov SU#3和Warsaw Eagles的退役也有很大关系。不过,我们赢的时候优势都很小。
回想起来,我们状态最好的时候应该是分区赛前后,那时连续几次都是第一。之后的比赛好像就变得困难起来了。KTH - Three Headed Monkey(04年决赛的亚军)来到了UVa比赛。在和他们的比赛中,我们完败。Final前的最后一次warm-up,KTH没来,我们侥幸赢了一场,结束了这个赛季的UVa系列比赛。

大三的时候,也就是Spirit这年,我们的队伍基本上成熟了。而且,这时的UVa比赛整体水平也严重下降。印象中,我不记得这一年我们在UVa上输过比赛了。有意思的是,10月初的一次warm-up,我们冒充Shahriar Manzoor(UVa的某老大)参加比赛。比赛到一半的时候,Shahriar Manzoor特地给了一个clarification,说“爬头的那支队不是我,但是他们很可能会成为你们比赛中的强劲对手:)”(原话不记得了,大致这个意思)。之后的那场比赛,为了避免误会,我们把“Shahriar Manzoor :-) ”改成了“)-: Rooznam Rairhahs ”。那场比赛,5个小时后,机房关门了,我们还剩最后一题没Y。Comars寝室要断电,就跑到我寝室来,在我室友的机器上完成了最后一题。之后,我陪他通了一宵。
这一年的UVa比赛,锻炼价值已经不大了,因为我们的优势很大,有时甚至能赢两题。我们发现,是时候去寻找一些更富挑战性的比赛去做了,例如SGU的比赛。之后,我们做UVa比赛的频率大大减小。Final前的最后一次warm-up,是我最后一次做UVa比赛。这一天,我们放弃了另一场很有意义的训练,来做UVa。不过,这时的UVa比赛确实大不如前了,这场比赛的收获也非常有限。

UVa的比赛,虽说到后期逐渐成为了鸡肋,但是就收获而言,它还是最大的。记得刚进交大的时候,LCX对我们说,他和LJ平时的训练是可能会偷偷懒,但是UVa的比赛一定会认真去做。因为这是一场比赛,有很多个对手,其中不乏强手,机会难得。虽然UVa的系统不怎么样,虽然题目可能出得不好,但是为了这些对手(或者我们可以把他们看作陪练),就冲着他们,我们也要重视这个比赛,投入全部的精力去做好UVa的比赛。
ACM队面试 ceshi 2008-04-16 22:36:29.0
这两天晚上都在面试ACM队的队员。
总的来说,今年我说的话很少很少,大部分时间都在听别人说话。
我突然觉得这两天的面试被我本末倒置了。
我把队员们当作了镜子,在看自己。
我发现,我可以很清楚地看到队员们的缺点,却看不到自己的。
其实我和他们一样,他们身上的问题我也有,只是自己没感觉到而已。
俞老师对队员说了很多语重心长的话,我怎么听都觉得那些话也可以对我说。
我也常常和队员们说,要承认错误,不要怨天尤人,要心胸开阔,要认清现实,要心存感激。但是,我自己又做得怎么样呢?真是一团浆糊。
突然觉得开朗了很多,因为又看到了自己很多的问题。曾经以为很多毛病都已经改掉了,现在居然又犯了。

p.s. 队员都选出来了,但是应该如何管理呢?王朝的更替,治世当加以规范,乱世当休养生息。那么现在算是治世还是乱世呢?