ACM的那些故事

我的ACM参赛故事 作者:PHPPLAY 来自豆瓣


从我接触程序竞赛到现在应该有十多年了,单说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不过是那绚烂星辰中的一颗。宇宙不应因为少了一颗星而暗淡,但是却可能因为多了一颗星而多了一段璀璨的文明。

==========================================================END======================================================================


原文地址:http://tieba.baidu.com/p/2432943599


前言:
即将进入研二,ACM的事情也渐渐远去,记忆终将模糊,但那段奋斗永远让人热血沸腾。开个贴讲讲ACM与中南的故事,当是宣泄,也当是一种宣传吧。多年不写作文,也不知如今的文笔能否打动更多的有志青年为中南ACM梦想而奋斗。
用时间序好了,不定时更新。一层楼对应一个时期或一年,有补充就在那层楼的回复中。也许真写起来故事不长,就这样吧。
 
1947年
ACM(Association for Computing Machinery )本不是一个比赛,美国计算机协会是一个世界性的计算机从业员专业组织,创立于1947年,是世界上第一个科学性及教育性计算机学会。ACM每年都出版大量计算机科学的专门期刊,有各种各样的国际会议,读研的同学们也许接触过这方面的东西。
 
 
1970年
ICPC (ACM/ICPC)
International Collegiate Programming Contest
 
先发一段简介:
ACM 国际大学生程序设计竞赛 是由美国计算机协会 (ACM) 主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近 30 多年的发展,ACM 国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。赛事目前由 IBM 公司赞助。
 
美国德克萨斯 A&M 大学1970年承办了首届比赛。
 
1977 年
 
在 ACM 计算机科学会议期间举办了首次总决赛,并演变成为目前的一年一届的多国参与的国际性比赛。迄今已经举办了34届。
 
这个比赛不知道是不是一开始就是这样设计的,
那时候很多程序设计语言都是“婴儿时代”,好比C语言是1972年,java更是90年代。
如今的比赛规则是:三个参赛选手组队,只能使用一台普通PC,在5个小时(一般是9:00~14:00)完成7~12个程序设计题目。(打个比方,一个简单的题目是,系统往你的程序送若干组整数对 a,b,你返回给系统对应的结果a+b)。程序得出的结果如果都正确,系统会告诉你你的程序"Accepted"或者"YES",如果有任何地方不正确,系统会告诉你"Wrong Answer",还有其他的内存泄漏、时间超出限制时间等等结果,都是一个比赛系统自动判定的,可以理解为一个黑盒,运行你的程序,往里送数据,另一边出结果,和预先设定的结果进行一一比对。每做正确一个题目,工作人员会根据系统的提示拿来一个和题目对应颜色的气球放到你队伍的位置上(高档次比赛的气球是能飘起来的~~所以用绳子绑气球,国内的大多比赛是用塑料杆。。),这个气球一方面给队员鼓励和信心,另一方面方便“观察战场”,看别的队伍做出了哪个题,可以“捡软柿子捏”,还有就是确实挺好玩,比赛完拿一大堆气球的话,你会看到围观比赛mm们崇拜的目光~~哈。
 
补充:比赛有个“罚时”(Penalty)的概念,首先做的题多的队伍排名更高,做出题目数量相同的队伍,由罚时来判断。比如C(题号)题在第30分钟做完,做错了2次,第三次得到了”YES",那么这时的罚时是30+20*2=70,20是ACM比赛约定俗成的系数,错一次罚20,不过如果这题到最后都没"YES",那么这道题是不罚时的。相同题数的队伍,罚时少的排名更靠前。
 
比赛是9:00~14:00,所以午饭是在赛场内解决的。小比赛自备干粮,大比赛会发午饭,有时候还很给力,去年参加天津比赛,连大葱油饼都出来了……
 
比赛可以带任何纸质资料,比如代码模板(这样实现一些特定功能就不至于非要默写了),但是不可以带电子设备,也就是说比赛只能使用安排的那台PC这一个带电的东西
 
1978~1995
 
 
单独把这段时期作为一章,因为在1995年之前,ICPC没有中国队的身影。
ACM/ICPC早期只是美国大学生之间的比赛,而后来陆续有欧洲国家的参与。到了90年代,美国ICPC的竞技水平不再是一家独大,ICPC也逐渐全球化。
 
这里要说一个与ACM/ICPC密切相关的比赛,即IOI(International Olympiad in Informatics)信息学奥林匹克竞赛(国际),NOI全国青少年信息学奥林匹克竞赛(国家),NOIP全国青少年信息学奥林匹克联赛(省)。
我们现在基本明白ACM/ICPC是大学生的比赛,其实高中生也有程序设计的比赛,就像我们曾经知道的数学竞赛、物理竞赛、化学竞赛、生物竞赛等等,在大约2009年之前也一样能保送大学的比赛(那年是不是有个新政策,各种学科竞赛不能直接保送了)。
这个比赛不是三人组队,而是"单挑“,貌似有笔试,也有上机,初期大多数用Pascal,现在也有很多用C/C++。
我国1995年开始了OI的征程,这是有里程碑意义的。你想啊,高中搞完OI的学生(想想数学竞赛的孩子有多厉害,你就能理解OI的学生比考计算机二级都费劲的本科生要牛X多少了。。),上了大学,不搞搞ACM?。
当然大多OI牛人就保送去清华北大上交复旦等等等等了,这也是咱中南ACM这么可怜的一部分原因(也没那么可怜啦,当然这个后面会说)。
 
1996年,中国开始ACM/ICPC的征程。(未完待续)
 
 
1996~2002
1996年,上海大学一位教授注意到了ACM/ICPC这项国际赛事对大学生尤其是工程类大学生的重大益处,在与亚洲区负责人的沟通后,这一年在上海大学大陆第一次迎来了本土的区域赛。
 
区域赛——ACM的选拔过程是,每个学校派出若干代表队(和往年成绩等很多非确定因素挂钩决定这个代表队名额个数)参加区域赛,区域赛成绩优秀的若干学校获得参加世界总决赛的资格,总决赛一个学校只能参加一支队伍,所以像清华上交等学校每年都会为总决赛进行校内PK。
 
2002年之前这几年大陆一直是仅有上海这一个赛区。经验积累中,中国在ACM比赛中的成绩逐渐提高,参赛的学校和队伍规模也逐步扩大,2002年是一个里程碑式的年份,不仅仅是上海交通大学取得了中国大学在ACM的第一个世界冠军,也是影响了后来每一代ACMer的大神刘汝佳值得纪念的一年。
 
刘汝佳——高中即参加NOI(信息学竞赛),2001年在上海的区域赛获得冠军,2002年的总决赛中代表清华大学取得世界第四。汝哥曾讲,当时参加总决赛前,根本没有多少资料可做,就只吧之前的总决赛题一遍一遍的做。也许经历过第一代ACMer缺少各方面资料和指导的经历,使其致力于帮助指导国内的ACMer学习算法和准备竞赛,出版的《算法艺术与信息学竞赛》成为中国ACM界的经典。江湖传言,也许是这本书封面以黑色为主,也许是这本书刚出的时候没有ISBN,所以被圈内称为”黑书“。其算法介绍已经相当全面且晦涩难懂,求虐可以买一本。。接下来的连续几年还为信息学竞赛和ACM区域赛出了很多优质题目。当然之后很多年也在为各大赛事提供指导和出题。对本帖有兴趣的朋友可以注意一下这个大神,下文还会提到。
 
 
2003~2005
故事终于要和中南有关了。。
 
2003年和2005年,分别出现了国内的两大OJ(Online Judge),即POJ(北京大学)和HOJ(杭州电子科技大学)。
 
OJ——在线评测系统。前面说过,ACM是提交自己的(一般是C/C++)程序给系统对应题目,系统运行程序并处理预定的数据,判断输出结果正确性并返回给提交者。为了方便训练,OJ应运而生,ACM做题训练,就是用OJ。
 
这里顺便介绍比赛使用的PC^2
 
PC^2——一般是用于局域网中,直到现在区域赛还使用的PC^2系统,PC^2是加州州立大学开发的ACM比赛系统,这个系统和OJ很大一点不同是可以进行人工干预。懂编程的同学应该知道类似 double的精度 和 拓扑排序多解等问题,同样正确的程序可能会输出有偏差的结果,人工干预大多时候就是处理这样的情况。
 
但是PC^2真心没OJ好用,尤其在Windows下的PC^2,一些无法解决的问题让人崩溃。所以除了区域赛,很多比赛还是使用OJ在局域网里用的。
 
有了国人自己的OJ,也是有里程碑意义的,这让国内ACMer有了更适合自己的训练系统,加上高中OI系列竞赛的蓬勃发展,大学的ACM竞赛开始了爆发式的发展。
 
敢为人先的湖南在ACM的发展中真的落后了,终于省内各个大学的一些学生开始发现这项比赛。中南出现了第一代ACMer。
 
这个时候在中南搞ACM还是纯粹的民间活动,就好像电竞爱好者在校门口网吧参加撸啊撸比赛一样。没有经费,没有指导老师,没有奖励政策。
 
参加一场区域赛,经济上也是不容易的,一个队三个人,用2011年去大连赛区打比方吧,火车票大约2000,参赛费1000,住宿费1200。在2003那个时候,中南的ACMer真的是一群热血青年,他们热爱这项比赛,自费参加。而高富帅北大清华,一个赛区就能去三四个队伍,浙大复旦甚至参加国外的东京、新竹、雅加达等赛区。能参加更多的队伍对于积累经验是相当重要的(有木有看进击的巨人。。845年和850年战斗水准完全不同吧。。炮灰也是有重大意义的。。。)
 
不能说一定是人家学校给力,毕竟都是有个发展的过程,想必他们90年代刚开始参与的时候,和我们那几年的境遇差不多吧。
中南的ACM起步晚,想追上ACM牛校,确实需要时间。
 
 
这几年国内崛起的一位新星,就是不得不说的大神 楼天成(楼教主)。
楼教主的经历真可以用传奇来形容,几乎包揽国内外各大程序设计赛事的。。。冠军!
楼教主2004年通过OI竞赛保送至清华大学,OI金牌、两届百度之星冠军、一届oogle code jam冠军,top coder追至排名第一。在后来的2009年,ACM/ICPC世界总决赛中惜败对手取得第二名。第一个以清华应届毕业生身份得到美国互联网大牛“不存在的网站”的Offer。是国内外众多ACMer的偶像级人物。
其更多神迹可百度之。
 
2004年湖南省开始了省程序设计竞赛。那时候省赛还是算法老教授出题,题目也许学术味比较浓厚。
省赛——省内每个学校派出【至多】四支队伍参赛,学校排名按照四支队伍的题数总和和总罚时评比。
省赛和区域赛一点很大不同,就是对学校的评价标准。ACM区域赛对一个学校的排名取决于这个学校比赛名次最高的队伍。
记得第一届省赛的团体第一是湖大,后来几年的团体第一大多就都是国防科大了。中南如何呢?哈,后面说。
 
 
2005年对于中南ACM来说也是个里程碑意义的年份,这一年学工办的黎主任主持创办了三大竞赛协会——ACM、机器人、智能车。学校也开始了对ACM竞赛的越来越多的支持。
 
中南大学ACM爱好者协会——以我了解,中南的社团一般是从校团委申请,然后归学社联管理,记得大一时候入团是交20元入团费,以帮助社团日常运营。而ACM协会是学工办办起的,作为竞赛发展社团,不收会费,那么也就没有钱给学社联咯。。当年黎主任也和团委交涉过,所以ACM协会挂靠在了科协,但还是和学社联有所合作。 至于后来,因为不收会费,实在是木有钱,所以还是独立行动了。。(以上内容仅为对史料理解,准确性有待考察)。
 
 
2006~2008
 
中南的第一代大神成长史。
 
很多创造辉煌战绩的ACM选手都出身高中OI竞赛,保送至六大(清华北大等等六个ACM传统强校),在大学继续参加ACM比赛。
 
而中南的这一代大神基本上人人都是从大一学C语言程序设计开始接触编程。
 
这个时候中南的ACM爱好者协会已初具规模,我所能追溯到的中南最早的ACM大牛就是姚总。
 
那个时候中南ACM协会分六大部门,姚总是其中一个部门的部长,在那时已有数百题的题量。
 
【小插曲。。】
题量——虽然任何考试和比赛都并不提倡题海战术,但是题量往往能够体现一个人付出了多少努力,ACM选手竞赛水平和训练的题量也很有关系。在那个时候,完成400题在国内已能跻身高手行列(当然现在是远远不够了)。楼教主接受采访曾说当年计划完成2000题,后来也做到了,一代高手背后也是相当漫长而艰苦的历程。
 
姚总那个时代中南ACM水平确切如何已不可考,而那一年,赵教 以新人的姿态进入了ACM的世界。
 
赵教当年当然还称不上教头,带着对姚总的膜拜,努力奋斗着。
 
中南在第一届省赛之后那一年,开始了本校的校赛,也是省内最早一批开始举办校赛的学校之一。每年校赛在3月举行,07年校赛姚总负责了出题工作,赵教的表现也引起了“老人们”的注意。
 
训练基本上就是 刷题-总结算法 + 比赛-总结经验,那时候姚总和赵教基本上是一个月100题的进度。
 
假期赵教在HOJ(杭电OJ)刷题的时候,看到了另一个中南的帐号也在疯狂的刷题,通过站内信,发现这个帐号的主人宿舍竟然在同一栋楼,于是 木南 被发现了!
 
姚总、赵教、木南 的相识,开启了中南ACM走出湖南,与强校PK的新篇章。
 
【百度空间那个坑爹的改革,几个前辈的博客从世界上消失了……资料不可考,所以故事的具体年份或许会有错乱。。】
那应该是08年,ACM协会一直在努力宣传竞赛,带新人入门,在这个过程中,赵教注意到一个新人——罗神。罗神那个时候还是个小小小小鸟,但是对数学的敏感和对问题条理的思维,是单靠训练无法达到的。
 
暑假之后,一年一度的省赛临近,为了培养新人,赵教和罗神组队。
这一年省赛成绩依然平淡无奇,赵教和罗神的队伍因为运气和一些失误只得到了2等奖,但是赵教在博客中肯定的说,罗神在ACM竞赛一定有不可估量的发展。
而赵教的博客有一条湘大谢教练的回复,评价赵教很有教练的风范。事实也确如此,赵教对于中南ACM的发展史绝不仅仅是拿到奖牌挣得荣誉,同时也致力于发展中南ACM,对新人的发现、引导,对训练的组织等等付出许多努力。其博客上的图论(数据结构、离散数学等学科的重点知识)题目列表标注了分类和简介,成为很多(不仅是中南)ACMer学习转载的经典博文,图论代码模板流传至今。
 
从能够考察的史料看,08年我们省赛参加了三支队伍,一个二等奖两个三等奖,ICPC区域赛两个银奖两个铜奖。那么,下一年目标:区域赛金奖。
 
补充:省赛的团体成绩是第三。
 
 
 
那几年应该是ACM在中国影响力扩大最快的几年,由于参赛规模的扩大,区域赛增加了网络赛“海选”环节,即在区域现场赛之前,通过一场在网上进行的比赛对学校进行筛选,成绩靠前的学校会根据特定的规则获得参加现场赛的若干名额。
这三年时间国内的赛区数也逐步增加到了5个,且08年的其中一场是前无古人后无来者的“惨绝人寰”,是在中科大的合肥赛区,这一年设置了这个“特别赛区”,为了让更多的学校有机会进军总决赛,5个赛区特别开设了这样一个“不允许已经出线过的高校参与排名的特别赛区”,而因为出线名额只有一个,那场面可以想象。那场比赛根据史料记载应该是 华中科技大学取得了那个参加世界总决赛的名额。
 
这几年IT企业的比赛也逐渐兴起,谷歌公司的google code jam,百度公司的百度之星。都是用算法题在网上层层选拔,最终选出几十名选手前往公司总部参加总决赛(谷歌决赛当然是去美国了)。百度的总决赛比较有意思,比如写当年还很火的 反恐精英 的AI(AI就是人工智能)。上文中也说了,楼教主拿了两个百度之星冠军,一个google code jam冠军。当然冠军总是很耀眼的,不过对于更多ACMer来说,在圈子里值得炫耀的一个荣誉就是在比赛选拔中进入前xx名的选手,可以得到公司寄来的纪念T恤。那个时候,能有一件这样的T恤穿出来参加比赛神马的,果断是被膜拜的大牛。
 
2009年
 
大约从办校赛开始就有了教练,不过中南ACM的教练模式和大多数学校相似,教练并不是全职教练,而是还要忙于日常教学工作的老师或教授。教练更多的是提供训练条件,解决经费,预约场地,联系比赛,而没有太多的直接指导,具体的训练往往是老人带新人。
 
那个时候我们的教练是余老师,人很和善,在中南ACM发展初期没有资料积累的情况下从各处寻找了许多资料,还办讲座宣传竞赛。
 
不知道09年是不是第一次暑期集训,但是能找到的最早的集训手册就是09年的了。这一年从政策上争取到了一次学校官方的集训,不过由于用地紧张,不得不寄人篱下,暑期集训的训练机房是借的湖大的。。湖大的经费分配和我们不大相同,ACM这部分是相当可观,那时的训练条件也自然比我们好很多。
 
暑期集训除了培养新人选拔校队,更是主力队员备战下半年的省赛和区域赛。训练是高强度并专注的,且算法学习对于个人发展也是有相当大的意义,于是暑期集训有了信息院、软件院主力队员可用集训代替本科大实习的传统政策。
 
这一年的主力是06级,新人主要来自07、08级。不过07级的罗神就是个比较“超前”的新人。
 
助理教练为姚总和赵教,队长为木南。助理教练和副队长 有另外几个前辈,由于没有直接接触过,就不再细说。
 
07级的伟哥这时候还是被虐的水准。另外同寝室的双jie(捷和杰)上余老师的课的时候了解到了ACM,也参与到暑期集训中来。
 
08级能听说暑期集训并来参加实属不易,我那个时候是完全没有听说ACM的任何消息的,宣传不力啊。有NOIP背景的大象,有阳仔,有小邱等六人参加集训。
 
集训总人数44人。
 
目标金奖不是随便说说,这时候的罗神俨然已羽翼丰满跻身主力,赵教已是图论高手,木南也犀利无比。姚总准备退役了。
 
这一年省赛拿到了单队冠军,不过团体排名依然是第三。
 
在区域赛还稍显稚嫩的 赵教、木南、罗神,在合肥赛区稳定发挥,但到最后半小时,排名还在银奖区。一道可做的题还在紧张地敲着代码。20分钟...10分钟...5分钟...提交!系统返回了 "WA"(Wrong Answer)...4分钟...3分钟...2分钟...调试后重新提交...1分钟...“YES”!想必当时三个人高兴得拥抱在一起了。
中南ACM的第一枚区域赛金牌,学校排名第八,这一年中南展现了不一样的实力,也收获了不错的运气。
 
2010年
 
09年拿到了金牌,虽然学校排名第八有一些运气,但距离拿到总决赛入场券的梦想并不再遥远。
 
ACM is a game,玩的时候认认真真去玩,结束之后认认真真继续接下来的生活、奋斗。赵教在09年的比赛之后退役,准备出国留学。
 
或许由于连续两年成绩进步的鼓舞,这一年的校赛特别热闹。
 
刚刚考了2月计算机二级的郭小侠宿舍里飘进了一张校赛的宣传单,于是决定去玩一玩。图书馆借了本看不懂的算法书,拉上同班一个同学和隔壁班一小mm就报了名。
 
不知道用while(scanf()!=EOF)读数据,不知道数据可以边读边处理直接输出而开大数组,不知道qsort可以排序而不用写俩for循环去冒泡,不知道。。。
什么都不知道,直到校赛最后几分钟,小mm都急哭了,0题收场。糗大了……
 
校赛刚一结束就接到了暑期集训报名通知。原来还有集训啊。郭小侠从小学开始就喜欢参加各种竞赛,虽然对ACM什么都不会,不过或许暑假“培训”一下就会了~~(很多新人和郭小侠一样自动把“集训”脑补成了“培训”)。
 
郭小侠自当不认识余教练,但是一看就知道是个管事儿的老师,于是就问校赛没做出题。。还能参加暑假集训吗,咱写代码好快的,就是不会算法。余老师哭笑不得着说,算法是最根本的,怎么能不会呢。
 
虽然后来知道,其实那时候参加集训的政策还是很宽容的。
 
郭小侠找了校赛群里认识的伟哥私聊,求进集训啊。
 
伟哥09集训的时候可能和这时候的郭小侠差不多,但是郭小侠不知道伟哥这一年来付出了怎样的努力,课都几乎跷光了(当然是不提倡的,但这个精神真让人感动啊)。这时候的伟哥今非昔比,一方面负责了校赛、集训报名等很多工作,另一方面也即将单人10年集训的助理教练,在校队中也是独当一面,比赛的“单兵作战能力”堪比兵长(呃,兵长乱入。。和本帖无关人物。反正就是很厉害了)。
 
集训的报名需要填一个表格,表格的最后一栏是“参与ACM竞赛的目标”。
 
那时郭小侠还不知道ACM后面有什么省赛区域赛总决赛,于是雄心壮志地写下“刷新中南ACM历史成绩”。
 
 
于是暑期集训在长沙酷热的暑假中展开了,10年的集训终于在本校的机房进行——科技楼四楼机房,很多同学应该在那里做过上机实验。但毕竟还是借的机房,软件不能随便改,书本资料每天拿去走的时候要带走,中午还要关门。南校的孩子们一到中午就会纠结是大老远跑回南校还是在本部游荡。
暑假的天气,大中午南校本部一趟差不多衣服就全湿了。郭小侠在本部图书馆带空调的的电子阅览室充了点钱,每天中午就算是有了着落。
 
日子是充实快乐的,但是也不得不说新人有很多的纠结。有问题可以问学长,但是杯具就存在于,弱得连问题都没得问。
集训手册除了简单题列表外,基本上做题就是抄代码的节奏。天天做题,却除了写代码更熟练,没有发现任何明显的进展。集训快结束的某一次训练赛,郭小侠才在做某道完全会做却不知怎么存得下数据的题目的时候,被木南前辈告知C语言有__int64这么个东西(__int64,是表示比较大的整数的一种变量,初学者在做超过10^9的整数的时候如果不知道这个变量就会不知所措)。
 
没资料,没引导,几乎全靠自己。所谓师傅领进门,修行在个人,门都进不去还怎么搞。郭小侠暗自下决心,等自己成为伟哥他们那样的大牛之后,一定要想办法找到让新人入门的方法,让中南后来的ACMer不再在初学时进展得那么困难,浪费那么多没有必要的时间。
 
这一年的集训有76人,每三五天就会有一场练习赛来看大家的学习进度,并作为最终选拔校队的参考。集训一上来第一场比赛,郭小侠就备受打击——29名,要知道这年集训可是有09级的学弟的。
 
09年就已参加过集训的大象、小邱、阳仔等等几个同年级的同学在集训一开始就遥遥领先,也得到了木南、伟哥、捷哥和杰哥等一干助理教练的认可。郭小侠真是羡慕嫉妒恨啊,虽然进展缓慢而辛苦,但不断努力,总不断在进步。
 
一次次比赛,慢慢的,第十几,第几,甚至有一次冲到了前三(不过那次是小邱阳仔几个有一部分没参加。。。),集训不断有人请假,有人放弃退出,但郭小侠在完成了暑期实习(大二这个是小实习,且又不是主力队员,就不用考虑代替实习的问题了)之后的那天早晨,坐着校车从湘潭直奔校本部车队,下车飞奔到科技楼四楼,终于没错过集训最后一场比赛。
 
集训最终并没有刷掉多少人,因为太多人是自己放弃了。郭小侠终于如愿进入了20人的校队(20人是包括助理教练等老队员在内的)。
 
余老师去美国交流学习了,于是换了新的教练陈老师。这一年的校队名单是陈老师宣布的,而郭小侠认识ACM的教练也便从陈老师这个时代开始。
 
即使进了校队,也并不是多么可喜可贺,毕竟新队员们还是清楚自己有几斤几两,中南的ACM还在成长,校队也非个个高手。
 
接下来就是省赛的备战,一如既往的没有场地。为了集中训练,大象凭借软件院ACM团体的领头身份在铁道校区借得了一个勉强容下校队的小机房。
对于校本部这边的郭小侠一干人等,就比较辛苦了。周末哪有校车可坐,17路挤得要爆炸,而每周末要在铁道校区机房集合,是因为区域赛的网络选拔赛(上文有描述,用于筛选学校确定参加区域现场赛的名额)基本就安排在9月、10月的各个周末。
 
ACM是三人组队的团体项目,所以校队的训练也会组队进行。和队员互相不熟悉的新人们,组队就由伟哥来指派了。于是郭小侠认识了韩小帅和凌小艺。凌小艺在做项目方面也算小牛一只了(项目是做比如我们用的 Q Q之类这样的软件,而ACM做的算法是解决如何让 Q Q这软件运行得更快之类的问题),韩小帅皮肤略黑,双眼很有神,放到校队里真可以算“队草”一枚了。
 
不过区域赛的网赛,对于三个小菜鸟来说,简直是逆天的难。写俩for循环就不错了,你给出个最小生成树,谁晓得去翻赵教的模板,更别说默写了。
 
慢慢的郭小侠觉得这么下去意义不大,跑铁道校区太费时间,做网络赛也给校队带不来什么贡献,反正在网上做,何必非要跑这么远呢。于是就向伟哥请求网赛在宿舍做了。
 
郭小侠是不知道其实前辈们更注重的是训练的态度,阳仔就一直坚持往铁道跑。不过话说回来,阳仔还做的动那些题的说,终究还是水平不及人,这一年也没能参加省赛,更不用说区域赛。
 
这年罗神的队伍是 木南、罗神,区域赛时又请了姚总出山助阵。
 
伟哥的队伍则是 伟哥、开仙、大象。 伟哥和大象算全能型的吧,数学院的开仙就专攻数论了(开仙在新人时代是相当犀利,师大一年一度的个人赛中开仙压过了罗神和伟哥的说~~)。
 
2010年是中南ACM竞赛成绩的一次高潮,上半年除了校赛,省内也有了参加湘潭邀请赛的传统(邀请省内高校参赛,规模算个小省赛了),罗神的一队轻松夺冠,伟哥的二队好像是第二或第三,力压群雄。
 
每年省赛区域赛这段时间,都伴随着另一个牵动人心的事情——保研。
那时候省赛的一等奖还可以保研,罗神大概已经打算找工作,压力便不太大。伟哥就比较着急了。保研虽是九月底十月初公示,但通过一些直接途径,10月25之前省里保研工作的门还是没关的。但是最揪心的就是,这年的省赛时间从10月初推到了10月31日。
 
较早来临的杭州赛区,纠结于保研的伟哥自当去争取个银奖以上。可惜很遗憾,只拿到了铜奖。
 
快到省赛,也马山就要确认省赛名单,这时候真是“半路杀出个程咬金”,师大附中刚毕业进中南的10级小曹突然出现在校内ACM群里,陈老师安排罗神与其面谈一下。结果就是,有NOIP背景的08级的乐乐参加省赛的位置被小曹替掉了。
 
原来小曹NOIP因为失误没拿到省一等奖而参加高考来的中南,但水平完全是湖南省一的水平,曾参加一个亚太地区的 OI比赛拿到金牌(这比赛不甚了解,不过也挺牛的,只是这个比赛和高校录取不怎么挂钩)。
 
省赛来临,由于研究生不能参加省赛,于是罗神与捷哥组队,伟哥还是原队。那年湘大谢教练在博客评论说 如果罗神和伟哥组队,这年的单队冠军必是中南,不然还是有些难度的。
 
然而罗神就是罗神,没有前辈木南、赵教 的队伍依然拿了全省单队冠军。伟哥的队伍也相当给力,拿了单队第四。
10年省赛刷新了“万年老三”的历史成绩,中南拿到了团体第二。
 
高兴之余,不免还有伟哥的伤感——迟来的省一等奖已来不及保研。
 
工作是要找了,不过还是要先专心打好区域赛,对得起一年多来的努力。
 
成都赛区和福州赛区都赢得了 两支队伍的名额。
 
成都赛区伟哥的队伍好歹是赢了罗神一把,拿了银奖。罗神这边多少有些失误,虽然是银奖但是名次靠后些。
 
成都之后就是福州赛了,最后一战。
 
【小插曲】ACM区域赛规定,每年同一支队伍之多参加两个国内赛区。
 
成都赛区必然会有新人队出场。罗神在群里问了一句谁想参加区域赛。郭小侠一个精神(果断是像中国好声音里哈林那样“选我选我选我”!),就毛遂自荐了。新人一般都很难拿到成绩,所以重在参与,积累经验,对来年很有好处。
 
不过令人失望的是,罗神私聊中说,学校报销很多经费参赛,还是应该尽力拿到成绩的。也没有多说,郭小侠自知拿奖还完全不可能。
 
去参赛的最终是小曹、阳仔、小邱。意料之中,没得奖。。
 
罗神、木南、姚总在福州赛区大显身手。
一开场罗神队伍做题飞快,几乎每道题都是1Y(1Y的意思是第一次提交代码就正确,而没有Wrong Answer之类的结果造成罚时)。
最后大家都知道,D题(题号)做出来就能拿到总决赛入场券了!可罗神的思路总有那么一点点不通。氛围越来越紧张,最后一小时,最后半小时,最后几分钟,敲着代码,思考着算法。终于,裁判宣布比赛结束,而那道题,还是差了一点点。
 
如果说前一年的金牌多少有点运气,那么这一年仅仅拿到金牌就是缺了点运气。依然学校排名第八,而和总决赛梦想仅一步之遥。
 
这一年是中南ACM的大丰收,而队员中又是几家欢喜几家愁。
 
罗神和伟哥一起找工作去了。(顺便一提,罗神面试时候给考官解释一个牛X的数学问题把考官听傻了)
 
补充:伟哥队伍的成绩也本有机会更好些,三个人的队伍一个人完全压在了数论上,而运气不好的是两场区域赛没有遇到开仙的数论题。。
还是补充一下。。虽然不太重要的信息:罗神在福州赛区最后搞的那个题的题号是不是“D”记不清了,也可能是“E”吧。。。
 
2010~2011
 
罗神大小比赛的成绩和在湖南ACM界的各类活动(出题,博客,群内讨论神马的),渐渐赢得了省内许多ACMer称其为“教主”的美誉。10年中南ACM在湖南也确实取得了压倒性优势,罗神也几乎代表着这个时候湖南ACM的最高水平。
 
百度之星这年的晋级赛有个给疯狂坦克写AI的环节,伟哥了个华中赛区的第一名。
 
没能参加10年任何一场大比赛的郭小侠,对ACM是否还要坚持的信心有点动摇。凌小艺和韩小帅对继续做ACM的态度也并不乐观。本身是自动化郭小侠,因为专业课不同,搞个二叉树就纠结了好几天,刚好年底看到了智能小车的通知,于是打算去打个酱油看看。
智能小车搞得怎么样就不再详述,但是郭小侠看到了智能车比赛的条件竟然比ACM好太多,有自己的训练基地,主力队员甚至有自己的位置放电脑放资料。似乎郭小侠内心还是站在ACM这一边的,心中更多的是嫉妒。
 
[一个不用粗括号的小插曲。。。小程序猿的逆袭] 郭小侠和隔壁班一小mm认识大半年了,关系一直没什么进展。年底时候,要做单片机课程设计。已经搞过ACM和负责智能小车编程的郭小侠,弄起这个来轻松无比。而那小mm简直可以用完全不会来形容。某天中午,电话:“搞不定了找我啊”“不用,应该能搞定”。吃晚饭前,郭小侠接到似乎意料之中的电话,“我搞不定了。。。”,果断二话不说,南校直奔民主楼。一来二去,郭小侠有了女朋友。
 
2010~2011的两年之交,发生了不少变化。
中南ACM发展这几年,一直是老人指导,新人辈出的稳定节奏。而10年底的“巨变”几乎一下子把中南的ACM水平丢回了刚刚开始的时候——因为断层。
姚总和木南是肯定退役了,ICPC要求满足 <=22岁或 <=研究生一年级。罗神真心打算去找工作了。开仙身处数学院,忙于新的学习生活,也仅仅在网上给新人指点一下数学问题。捷有点幸运地拿到了保外名额,杰果断考外校了。最想留下继续ACM的伟哥想保研却保不了,也工作去了。06级走了,07级也走了。而对中南ACM继续的打击是,阳仔等几个即将成为绝对主力的08级一干人等,有的工作有的考研,也这么莫名其妙的散了,形容这个时候——“中南无人”。
 
2011年
 
11年初,距离罗神他们毕业还有一段时间,无论怎样,中南ACM总要有接班人。简直可以脑补前辈们扫了一遍校队群成员,然后目光定格在头像亮起的郭小侠,叹了口气的场景。。(当然不至于了,好歹郭小侠在10年底湖大一年一度的新人赛还赢了100块大洋)。
 
即将委以重任,罗神终于亲自和郭小侠面谈了一次,并把中南ACM爱好者协会的印章交给了郭小侠。得此印即为协会之主席,此时中南大学ACM爱好者协会 包括主席在内总人数为——1人。。。
 
也许是前辈把印章给罗神之后,一方面因为学校有竞赛辅导员组织校赛和发集训通知等等,另一方面罗神忙于备战比赛,忘了协会的事情,一两年过来,协会无人打理,已经名存实亡了。
 
于郭小侠而言,虽然并没有决心把ACM继续下去,但是既然担此重任,无论协会是什么状态,都要把协会重新做起来。协会能做的远不止曾经做的那些,这是一个很好的途径和窗口,一定能极大带动中南ACM的发展。
 
首先三件事
第一件事,把协会6个部门精简为4个部门。
第二件事,把校队“残存”的朋友们拉上,“当哪个部长,自己选把”。
第三件事,4月校赛临近,开宣讲会,顺便招兵买马。
 
校赛的宣讲会是很有意义的,这也算是参加智能小车比赛学的一招吧。。至少告诉参赛的新人一些ACM的基础东西,使之不至于像郭小侠第一次参加校赛那样即使题目会做,怎么也做不对。至少说明EOF是什么,说明不要把答案存到一个数组里最后再输出。。。
 
ACMer并非都善于管理,郭小侠找来了当过学工办助理的好哥们儿彭小山帮忙,通过招新得到了小宇、小易等很多很有行动力的小朋友。
 
兵马齐备,协会可以开始基本的运转了。不过那时候郭小侠还有很多没弄明白的东西,比如只有一个印章,怎么就说明是主席了呢,又不是古代拿个官印什么的,好歹学校有个登记吧。协会的经费哪里来,又不收费。协会和学社联神马关系,和团委有没有关系,上级是谁。。。一堆问题存在郭小侠脑海里,不过把ACM工作做好要紧,这些问题慢慢解决。
 
上文说过OnlineJudge(在线评测系统),中南为什么没有呢。这个时候国内出现了一个开源项目,是华科(HUST)几个学生毕业设计做的OnlineJudge系统,另一个学校的一个老师发现了这个系统,并继续改进,作为一个开源项目发布了。这几年很多学校开始对这个开源项目进行二次开发,作为自己学校的OJ系统。
 
捷 爱好摄影,擅长美工,杰有点极客风格,擅长多种技术,两人一起对HUSTOJ重做美工,功能二次开发,并通过陈老师向学校申请服务器,中南有了自己的OnlineJudge系统(acm.csu.edu.cn/OnlineJudge),并交给了不懂ssh不懂shell不懂php不懂。。的郭小侠。。。
 
【小插曲】现在的这个OJ网址的OJ不是当时捷和杰做的了,直接使用了最新的HUSTOJ原版,因为有功能更新,而老的美工模板在新版本HUSTOJ下无法使用。
 
郭小侠深知中南ACM最缺的不是大牛指导带领,而是氛围、凝聚力。如果08级精锐仍在,没有07级的庇护也不用怕。如果更多的人参与ACM,就会有更好的竞争氛围,有竞争,就有更大的进步。
 
上大学之后生活就颓废很多的郭小侠深深地觉得,要不是参加ACM,自己现在似乎什么都不会,ACM能帮人找到方向,最不济,能让人更快更好的学会编程。大到搞好成绩把中南名气打出去,小到让每个人拥有多一份很好的技能,发展ACM竞赛,一定是极好的。
 
校赛的第一谁都没有想到,是一个来自湘雅生物科学的姓罗的家伙带领的队伍。此罗 并非 罗神,是09级的学生,这让郭小侠很好奇。
 
校赛之后,就是传统的暑期集训报名了。
 
群里突然冒出一个10级小孩子,没参加校赛,想要参加集训。莫不是又是班长坑爹,没给发校赛通知。
 
【小插曲】真不是仇视班长,相信很多班长还是认真负责的。但有多少次,ACM协会花不少钱打印了足够多的通知交给辅导员,由班长发给每个宿舍一份,绝对是覆盖全部信息院和软件院的,就是希望比飞信的通知更郑重,说明更具体,但总有班长拿了通知之后真就当广告传单了,根本没有发给同学们,这些班长不知道,一个生活没有目标的同学,碰巧看到这个通知,可能会改变他的一生。 还记得当年飘进郭小侠宿舍的校赛通知么。
 
这个10级的孩子就是小斌斌。
 
许多高校都有自己的ACM月赛,对校内外ACM交流和活跃校内ACM氛围都很有好处,刚好中南也有了OJ,郭小侠也计划着把月赛办起来。
 
小斌斌能不能参加集训,刚好可以用五月月赛看看。
 
小斌斌问郭小侠,有没有什么入门资料。这一刻郭小侠仿佛看到了一年前的自己,也是这么问过伟哥,但是当时什么都没有。这段时间郭小侠刚好意外发现了 刘汝佳 大神 2009年新出版的《算法竞赛入门经典》,因为封面是白色的,就被称为“白书”了。果然多年之后更了解ACM的讲述方法,不再如黑书晦涩难懂,循序渐进,完全是新人的福音。郭小侠果断把这个资料介绍给了小斌斌,并强调了一些曾经坑了郭小侠几个月的烂资料,一定不能看。
 
小斌斌很好学,时常在群里问问题,从问题也可以看出他做白书的进展。一开始也是新人们常问的“怎么处理题目中所谓的文件结尾啊”(又是EOF,其实就是End Of File),“scanf("%c"...)怎么才能不读回车啊“等等。但是随着做题越来越深入,问的问题慢慢的让郭小侠也觉得可以适当讨论一下了。
 
那时候从学校借的服务器(只能远程登录,不能进入机房),时不时的就挂掉,挂掉了还不知道为什么,要多方面联系到管理员,费好几天才能恢复。
 
于是,5月月赛进行到一半,服务器就这么巧的挂掉了。不过郭小侠发现那时候宿舍的电信网竟然有独立IP,果断在自己笔记本上架上OJ,勉强把五月月赛进行到底。虽然五月月赛是纯粹的新人参加,不过小斌斌已然在新人中名列前茅(第一或第二?)。碰巧陈老师让郭小侠简单说一下了解的比较有前景的新人(那时候集训的人数一般是  准主力年级(09)>主力年级(08)>完全太年轻年级(10) ),所以10级的集训队员选择需要有所考虑。没参加校赛的小斌斌自然破格进入了集训。
 
这年集训郭小侠特别建议搞了一场“摸底”赛,先看看队员水平。摸底赛出了大量题目,有点马拉松的味道,不过除了最后两三题,基本上没有什么算法,是绝对的新人题。
 
又一个没有见过的新人遥遥领先拿到了第一,09级的小小苏,校赛那个姓罗的冠军大约是第二吧,小斌斌是不是第三就不记得了。
 
集训中郭小侠认识了09级姓罗的那个校赛冠军,个子不高,说是小正太吧有有不少胡子,一问年龄吓一跳——26岁。开始郭小侠不相信,不过后来证实确实如此。姓罗的为人挺好,说话是沉稳中带着滑稽,还有那么些霸气,让人信任又忍俊不禁,因为种种原因岁数不小了又参加了高考,不过绝对是正式录取的正规本科生,大学之前就已做多年写程序的工作,工程经验丰富,校赛很多题都没用套路出牌,而是很奇葩的暴力解法竟然通过了题目。因为年龄,慢慢的大家都亲切地称之为“罗大叔”。
 
09级的小小苏校赛时候用的java,貌似c语言做ACM是临时学的,没什么算法经验,摸底赛竟然那么厉害,还是很有天分的。
 
集训时候的组队赛小小苏组了同是09级的建军,建军身材笔挺样貌端正,还真有点军人风范。思维不错,做ACM的风格和小小苏也有几分相似。
 
10级的小斌斌一直非常活跃,在集训 Q Q群里话很多,有时候郭小侠都受不了了直接让他闭嘴。
 
凌小艺确定是找工作实习去了,韩小帅也打算找工作,不过实习时间和集训并不冲突,也参加了集训。
按往年情况,主力队员在集训就是组队训练了,可是郭小侠看来看去,情况并不乐观。
 
人无远虑,必有近忧,大学一直安逸的郭小侠没有了解过保研是怎么一回事,这个暑假过完就是大四了,而86+的加权平均成绩在自动化的学霸天地里完全是被虐成渣的节奏。考研是不怕,就是太累。带着协会忙了这么久,郭小侠又想起了看到罗神福州失利那时,决心继续前辈们要把中南带进世界总决赛的梦想。如果这年ACM能保研,再真正认认真真奋斗一年,这个梦想应该是很有希望实现的。
 
可是看这年的团队,保研谈何容易。因为一年前的辉煌战绩,11年的集训吸引了更多的人,加上协会的多方努力和许多改革,这一年的新人比过去犀利的多,但新人毕竟是新人,这一年的老队员简直是几年来最弱。
 
勉强还能撑一下门面的,是还没有离开的大象、小曹和小邱这个铁三角,大象只拿过区域赛银奖,心有不甘,小曹N OIP失利只有二等奖,又打算本科结束留学,搞ACM得奖多点筹码,小邱则希望拿奖保研。
 
除了铁三角,看看其他队员,罗大叔做项目多做算法少,比赛发挥很不稳定,韩小帅要找工作要实习,下半年很难静心训练参赛,新人们再牛也是小菜鸟,郭小侠的保研之路堪忧啊。
 
这一年校队在本部的居多,大家可不想再往铁道跑,而铁道的机房也不一定还能借。眼看区域赛的网络赛即将拉开帷幕,校队找不到地方集中训练,更重要的是找不到地方做网络赛。难道要都呆在寝室里做,用 Q Q讨论?
 
还好网赛是周末,陈老师决定大家带上自己的笔记本,到陈老师的实验室来做网赛。实验室不大,校队一来显得格外拥挤。不过这都不重要,有同一个地方,有网线有电源,有校队,梦想便可以继续。
 
【小插曲】算法——不是相关专业的同学可能看这个词会比较郁闷。在编程方面来说,不能直接理解为“计算的方法”,不过倒是可以理解为“让计算机处理问题的方法”。
比如1000内猜一个数,我只提示“高了”还是“低了”,如果从1猜到1000,那么如果运气不好的话,数字刚好是1000,就要猜1000次,而如果先猜500,如果提示低了就猜750,又提示高了就猜625,这样至多猜log2(1000)大约不到10次,就猜中了,那么这个策略,就可以理解为一种算法。
 
郭小侠深知新人才是希望,比赛经验很重要,一定要让有毅力有决心的新人多参赛,不要有有心奋斗的队员像自己去年那样只能做观众。
 
省赛临近,郭小侠也开始和新队员进行交流,一方面了解进展,一方面也让新人了解中南ACM的情况,比如关于总决赛,关于梦想。
 
那天晚上,郭小侠看到了小斌斌的博客——Staginner,解释为“Stay as a Beginner”——副标题赫然写着“我要把中南带进世界总决赛!”
 
11年的省赛比以往时候来得更早一些,9月中旬,郭小侠最终还是带上了充满灵气的菜鸟小斌斌。
 
“判负圈”“SPFA啊”“不错,基础知识可以”
 
“单源非负边最短路”“SPFA啊”“还行,知道不止Dijkstra可以做”
 
“棋盘最短路个数”“SPFA啊”“你怎么什么都SPFA”“我只学过SPFA啊”
 
我勒个去……
当年赵教眼中的罗神是不是也这么可爱。
 
省赛一个图论题题目描述数据范围给错,导致数组开小,结果不给RuntimeError而给Time Limit Exceed,一道动态规划明明会做却调代码调到最后没出结果,无奈郭小侠二等奖。
 
按学校保研政策改革,11年是最后一次省一直接保研。
 
铁三角作为撑门面的一队,好歹拿了个省一,小邱顺利拿到保研资格。
 
团体成绩回到了千年老三的位置。
 
时间不等人,马上开始准备考研还是去9月底的大连赛区再搏一把?郭小侠本是纠结的,但是觉得,如果不搏一搏,未来回忆这时,一定会感到遗憾吧。罗大叔也希望通过竞赛保研,于是和郭小侠一起踏上了大连的征途。
 
途中郭小侠了解了更多关于罗大叔的事情,罗大叔13岁开始编程,那年家里买了小霸王学习机,罗大叔发现学习卡里有个BASIC语言,于是就玩了起来……情何以堪,我们小时候用学习机干什么来着,何况至今不知道白武士的旋风腿是怎么发出来的。。
 
罗大叔又讲了来长沙上学后继续找了个工作的事,那时在湘雅附近看到个招聘广告,要求有Linux开发背景,罗大叔做了很久MFC,这Linux开发可不熟,赶紧买了本书,国庆节狂看七天,然后去应聘自称有丰富开发经验,和考官对答如流,顺利赢得工作,6000一个月,现在已经在长沙买了房,按揭还款中。郭小侠已经听呆了。
 
比赛前宾馆里,郭小侠又向罗大叔学习了一些面向对象的知识,什么构造函数、析构函数之类,受益匪浅,对后来郭小侠竞赛的代码风格产生了深远的影响。
 
之前说过罗大叔比赛状态是不稳定的,题目对口了爆发起来不得了,题目不对口了也会被虐成狗。大连赛区是郭小侠第一次参加区域赛,了解过前辈的水平和成绩,明白即使是三个自己组队,这个时候的水平想拿银奖也很难。
 
罗大叔太奇葩了,开场就敲题,不编译就提交,错了两次好歹是通过了。。然后就和最后一题那个全场没队伍做的题掐上了。。
掐到比赛快结束,郭小侠对C题那个动态规划终于有了比较明晰的思路,这是好歹混个铜奖的希望,拿着键盘敲啊敲。最后5分钟,调试,提交,WrongAnswer。。。调试。。提交。。调试。。提交。。比赛结束。。。省赛就是调一个动态规划没出来,大连依然如此。。。这就是传说中的“打铁”么,Honorable Mention。
 
比赛结束后,罗大叔恍然大悟地“噢!~~最后一题tmd看错了,不是个水题”,一旁的郭小侠和另一个队友那个汗啊……
 
大连到北京转车,郭小侠退掉了回长沙的票,买了回家的。思考一下吧,接下来怎么办。
 
如果找工作,9月这时候时间很充足,比罗神伟哥当年情况好很多。
 
不过郭小侠的父母和郭小侠本人都比较倾向于读研。
 
读控制类吗?郭小侠一直不喜欢这个学科,当初也是父亲让选的自动化,什么电机拖动、自动控制原理,说难也不难,但完全不感兴趣。
 
考计算机?考外校还是本校?。。。
 
晚上,郭小侠半发呆状开着一个个网页,看一个个他人的选择,考研的备战历程,偶然右下角小斌斌的头像亮起,随便聊了起来。突然又想起小斌斌博客上那句话——“我要把中南带进世界总决赛!”——也是自己的梦想。
 
07级的走光了,08级的很多队员似乎失去了奋斗的信心,各自散去。如果这一年08级一个不留,09级、10级是否会一样,断层,继续断层,两枚金牌之后,梦想就永远只是梦想了吗?
 
留下。
 
何必那么多为什么,中南信息院还不至于对不起求学的我们。留下,为了中南ACM共同的梦想,为了新人们的渴望。
 
买了第二天的火车票,郭小侠回到长沙。
 
自动化的学生考计算机,这年计算机还是全国统考,没有中南自主出题,陌生的组成原理、操作系统、计算机网络,郭小侠却觉得是那么亲切,好像这些东西上辈子就刻在脑海里一样,是被自动化虐得太久吗,考研专业课的复习,虽然辛苦,可更多的是相见恨晚。
 
郭小侠边考研,边放心不下ACM协会,因为早就有很多的计划等待实现,即使考研也拦不住。
 
清华的区域赛金牌选手是大一学生,而我们往往是大三大四甚至研一,生源我们是没法改变的,我们没有高中 OI选手,但我们可以在大一新生入学的时候告诉他们,你们的大学生活有多一种选择——ACM!
 
9月中旬,中南的第一次ACM新生宣讲会;
 
10月,中南的第一次ACM新人赛;
 
11月,中南的第一次有外校参加的正式月赛;
 
这过程中,郭小侠也搞清楚了ACM协会的历史由来,并在学工办重新建立了ACM协会正式档案;
 
盖公章提供学校官方证明,在人人网开通了认证中南大学ACM爱好者协会公共主页;

建立ACM校内外交流 Q Q群,加强与全省ACMer交流(到2013的现在已不止全省,群里还隐藏着一些世界级神牛);
 
招新,壮大ACM协会;
 
这一年湘大一队的水平力压全省,大家都很好奇我大中南和湖大何以不及湘大ACM,甚至连湖南唯一进过WordFinal的国防科大也败给湘大。这支队伍当然付出了巨大的艰辛与努力,但是当看到他们队员博客提到,“赛前训练那几天直接【睡】在机房”的时候,郭小侠眼中的这句话是“赛前训练那几天直接睡在【机房】”
 
某天,一个身影直奔民主楼院长办公室。
郭小侠找吴院长“喝了个茶”。吴院长态度和蔼,并表示了对ACM工作的支持,也解释了ACM机房的事情学院也在努力,确实受限于学校的一些条件,但ACM竞赛有机房这一天不远了。
 
除了大动态,期间小活动也不断,协会组织知识串讲,让刚了解ACM的新人们不必等到暑假的集训,而是常常能得到ACM前辈的指导,还有真正的类似新人希望的“培训”的感觉,懂的人一句话,顶自己看一个月书。
 
郭小侠希望,中南把月赛办起来,办成传统。把宣讲会搞起来,搞成常规。把知识串讲系统起来,帮新人入门。
 
期间小宇和小易在工作中做了很大的贡献,而小宇也是这一年ACM校队队员,郭小侠打算有一天把协会主席工作传递给小宇。
 
另一边,区域赛也在火热进行中,不过火热是别人的火热,11年中南的ACM,除了小邱由于参加保研复试而由大象请开仙出山助阵,在上海赛区做出全场没其他队伍通过的数学神题轰动一时 之外,再无亮点。
 
省赛团体第三,区域赛二铜,结束了这一年ACM的赛季。
 
 
【大大大补丁。。。】
 
前文说到后面还会提刘汝佳大神,把这么重要的剧情给忘了。
 
10年、11年、12年,可能还有13年今年,湖南程序设计竞赛的题目是请刘汝佳来出题的,10年的时候伟哥听说这个消息,果断搞来了黑书的各种相关资料。这给二叉树还没搞懂的郭小侠直接看晕了。这时候还没人知道白书已悄悄出版,而一年后拿到白书的郭小侠发现,做完白书的大约350题所学会的算法,面对10年省赛几乎是可以AK的节奏啊!
 
11年刘汝佳老师来了一趟长沙,在省赛前开了一场宣讲会(教练培训会),站在宏观发展的角度让大家看到了关于ACM更广阔的世界,列举了几个ACM总决赛的题目,也让大家了解到总决赛的题也没有难到我们无法做。同时也提到,湖南程序设计竞赛要发展,省赛的难度也不会一成不变。11年的题比起10年确实难度有一定提升,至少把做完了白书和10年省赛题的郭小侠打击得够惨。
【小插曲】AK的意思是一场比赛所有题都正确做出,1Y的意思是一道题第一次提交就正确了。
 
 
一边考研一边顾着协会的郭小侠,依然抽空做一些ACM题,进展缓慢但至少不至于半年后变得生疏重头再来。深知比赛队友一定要找真正愿意坚持努力下去的,并且尽早确定,有目的有计划地训练。菜鸟时代的郭小侠找过一些队员希望组队而被拒绝,如今来找郭小侠组队的人,郭小侠 一 一 婉拒,因为心中已有人选。新人小斌斌和小小苏,虽然这时候还不及经历更多的老人的水平,但郭小侠看得到他们的聪明,看得到他们远超越他人的努力,自己作为助理教练亲自带出的队员,更值得信任。
 
郭小侠与小斌斌商定,每天小斌斌要完成一份pdf总结,总结当天ACM学习内容,作为督促。小斌斌的进步速度完全超乎想像,一个又一个算法地攻克,串讲中给新人讲解,给月赛出题,几个月下来已近年底,俨然有了些高手风范。又到一年一度的湖大新人赛,小斌斌果断拿了个冠军,这年奖金涨了?小斌斌拿了200块。。比一年前郭小侠的多诶。。
 
小小苏倒没这么疯狂,自己做着网上找的分类列表。一次次个人赛,和小斌斌势均力敌,谁得第一都说不定。小斌斌、小小苏、罗大叔、建军一直包揽着校内各类比赛的前四名。
 
关于下一年的暑期集训,郭小侠已经有了一个大计划,首先就是集训手册的改变。
 
09年开始存在集训手册,而备受关注的部分就是训练题目列表。
 
09年题目少而精,数量和类型不足,10年题目有了极大丰富但稍显杂乱,11年题目对10年题目有部分改变,并添加了很多题目,看上去更像直接堆砌,良莠不齐,难题、偏题都不适合新人训练。
 
于是郭小侠开始了一项大工程——对三年集训手册存在的题目和从网上找到的应该添加的算法题目列表,用尽可能多的方法解答,并分析思路,对算法和难度进行细致的分类,对题目列表增删改,为每道选上的题目用标准代码格式和比较好的命名习惯、函数封装 完成题解代码,描述解题方法。让集训手册每道题出现在合理的位置,起到应有的作用,符合暑期集训的任务量。题解供新人参考,作为学习的代码模板,可学习实现方法,可总结打印使用,不至于因为知道算法描述却不知如何用代码实现而阻挡训练的步伐。这项工作也让郭小侠接触了一些曾经不了解的算法,边学边做,寻找最优解决方案。作为集训手册的编写者,了解手册上的每一道题,手册的题目列表才真正有了意义。
 
2012年
 
考研初试最难一年(2013计算机有中南自主命题了),复试变严格头一年(这一年开始刷一半,学硕录取10人),郭小侠有惊无险地通过了。小斌斌和小小苏很高兴地给“老大”办了一场组队纪念赛。
 
组队
 
郭小侠的 Q Q头像是Wall-E(机器人总动员,本世纪初皮克斯最优秀动画片),而小斌斌的头像也改成了“清洁工”M-O,于是就拉上小小苏做“电焊工”Burn-E了,队名就取作——CSU_BMW。
 
真正的组队才刚刚开始,团队配合还有很多不足,年初的大小比赛还是被虐不断,但队伍的改变让郭小侠自己都觉得神奇,就是极强的自适应调整性,比赛一场比一场默契。2010之后,真是久违了小斌斌小小苏这样的选手。
 
小试牛刀
 
还是一年一度的湘潭邀请赛,中南拿了邀请赛第二个冠军(上一次就是10年的罗神了)。而由郭小侠撮合的罗大叔和建军组起的队伍,也拿了第三。
 
集训临近
 
这时候余老师也已回国, 给大家带来了一个惊天好消息,集训能用上机房了!ACM训练专用机房,负责人是余老师。这意味着中南的ACMer有了自己的家,有了一个基地,一个不用被管理员进行各种限制的自己的地方。要不要去机房睡一晚上以作纪念呢?。。。
 
租房
 
郭小侠和小小苏的宿舍在校本部,小斌斌还在南校,队伍联系并不方便。集训前三个人一合计,就在后湖租了个房。小斌斌高兴地说,暑假能吹空调了!
 
机房来了
 
7月,机房装修完毕,余老师把机房和机房交换机柜的钥匙交到了郭小侠手里。回想这么多年,那一刻,郭小侠的心情很复杂。
 
有白板,有投影仪,有打印机,有指纹签到机,有55台电脑和1个带电脑的讲台,虽然都是08年的旧电脑,但已经很满足,还有两台全新大块头戴尔服务器!!!复杂的心情很快被喜悦代替,几天后即将开始集训。BMW三个人马上忙活起来。卡线钳网线水晶头螺丝刀白板擦白板笔,郭小侠检查每台机器的网络,查看网线编号对应机器,换水晶头换接口。小斌斌查看不能启动的机器,大概是机器许久没有通电,扣一下BIOS电池就都好了。小小苏研究了机房机器的联想网络同传系统,给机房统一装上了Win7专业版和ACM训练相关软件。。。
 
忙活一天下来,看着所有机器同时启动,闪动启动界面,进入系统……心中莫名的激动。准备好了,迎接一个不一样的集训!、
 
集训前
 
郭小侠的“大工程”也将完工,刚好做完毕设,用毕设的标准排版制作了12年集训手册,不断回忆自己的“菜鸟时代”需要什么,不断修改集训手册的内容,并设想着集训的计划,不是枯燥的日复一日的比赛练习,要分组,要讲解,要减少让新人措手不及的比赛频率,还不能本末倒置,把握好度。
 
集训
 
集训热热闹闹地开始了,对于BMW三人组来说,每天的生活是差不多的,安排好新人的训练任务,听“半新人”给新人讲解自己专门学习的特定算法,做练习或阶段性的比赛,中午叫个“小厨房”的外卖,晚上一起去“湘厨家菜馆”点个香菇炒肉,茄子炒蛋,简单、忙碌、充实。
 
暑假长沙的天和10年、11年一样,很蓝,还有很大很大块的白云,很美。
 
小小苏给集训制作了局域网内的集训主页,让队员们可以查看当天的任务,下载不断更新的算法学习文档。
 
郭小侠搭建了华科大神Isun制作的开源项目VirtualJudge,可以从不同的OJ抓取题目放在一起做,还可以把某场比赛的Ranklist导入系统,因为Ranklist带有每个队伍做出某个题目的时间,利用这个可以把Ranklist变成一个比赛动态Ranklist在5个小时中变化的“录像”,把自己训练时候做的比赛的Ranklist与“录像”结合,就仿佛和当年比赛的队伍同台竞技。
 
集训快结束的某次训练赛,用VirtualJudge,模拟了罗神当年离Final一步之遥的比赛。从始至终BMW一直紧挨着罗神队伍的下面一名。而最后时刻,BMW选择了和罗神当时做的不同的另一道题目,是个计算几何。郭小侠完成了这道题目,然而比较无语的是在HOJ提交是WA,但去UVA(西班牙的著名OJ,与ICPC合作作为ACM比赛的题目存档OJ)提交就正确了。“标程没加eps,OJ又不给Special Judge,坑爹”。
 
【小插曲】eps是指一个很小的10^(-6~-12)的小数,用于修正double的浮点精度。SpecialJudge是OJ中用来通过另外一个程序解决问题的多解问题,而不需要人工干预,比如拓扑排序,比如可承受double精度范围。
 
至少这给了郭小侠不少信心,郭小侠+小斌斌+小小苏的队伍,不弱于罗神+木南+姚总 当年。
 
校队选拔赛
 
校队选拔赛从没有过,往年集训都是根据平时频繁的比赛进行综合参考而指定名单。有压力才有动力,凭实力说话才应该是选拔校队的标准,郭小侠在集训一开始就告诉大家,校队要用比赛来选。当然集训期间还是进行了若干次比赛作为一定的参考。为了避免偶然性,最后的选拔赛进行两场,取每场前10名,第一场前10在第二场不计排名,且两场从始至终封榜,第二场结束公布结果。考验的不止是水平,还有心态。
 
一年来ACM协会各项工作的展开有了显著的收效——校队平均年龄降低,平均水平提高。至少可以保证,这一年刚选出的校队,每个人都会写线段树……(往年是做不到的,比如当年二叉树都不会的郭小侠)
 
省赛
 
按照省赛的规定,研一的郭小侠是不能亲自参赛了。时间在国庆节之后,于是郭小侠为队员们准备了充实的“国庆七天乐”。按照省赛老人带新人的传统,小斌斌、小小苏、罗大叔、建军分别领衔四支队伍。郭小侠从各处找来其他省程序设计竞赛的题目、数据、题解,完全模拟省赛的环境(省赛用PC^2,年轻队员没什么比赛经历,基本上只知道OJ),七天每天一场标准时间的比赛。
 
小斌斌和小小苏每天训练之余要做一件事,就是要看个一两集的《轩辕剑》(胡歌那个),这导致的结果是,省赛中南四支代表队的名字是——盘古斧、女娲石、神农鼎、伏羲琴。。。
 
意料之中?意料之外?建军这边差一点点,拿了二等奖的第一名,于是2012年湖南省第八届"蓝狐杯"大学生计算机程序设计竞赛,中南大学拿了三个一等奖,一个二等奖,第一次【团体第一】!
 
晚上建军的 Q Q签名改成了“这都是命啊!”,有些遗憾和心酸。建军已经成绩保研外校,这句话是真心的对于ACM的遗憾。
 
罗大叔的保研大业还在坎坷之中。2012年中南取消了对学科竞赛省一直接保研的政策,而大叔的课程成绩还没有进入年级30%,想保研,还要区域赛的银奖以上。
 
区域赛
 
BMW三个人除了打了两年酱油的郭小侠,小斌斌和小小苏其实接触ACM的时间并不算久,再好的天分和努力也终究受到时间的限制,为备战区域赛,不得不明确分工去学习算法。于是郭小侠暑期集训进行一半之后就开始专攻计算几何了,小斌斌专搞“冷门”算法(其实不冷门,甚至很热门,只是对于中南这样的ACM弱校,splay、dancinglinks这样的东西基本都是“大后期”),小小苏则搞图论和动态规划(小小苏照着赵教博客的图论列表做了个遍,又学习了各种奇葩图论题,超越当年的赵教还是应该能做到的)。
 
按照传统,为了保证当年的成绩,一队一般会去两个赛区。小小苏的女朋友在杭州上学,小斌斌的女朋友在北京,刚好也为了两场区域赛之间能隔一段时间,于是选择了中间隔着金华赛区的  天津赛区 和 杭州赛区。
 
天津
 
天津赛区争取到了两支队伍的名额,于是郭小侠、罗大叔一行六人开赴天津。
 
火车上大家也谈论着OJ要不要自己开发一个,郭小侠还想用PHP,小小苏说用java,罗大叔说用C++(C++做网站。。有倒是有,效率还比PHP高,郭小侠不得不再膜拜一下罗大叔)。又谈到来年校赛出题,郭小侠说,咱就出个麻烦点的计算几何,搞个三维凸包,问怎么放平地上高度最小,balabalabala。。。。
 
天津赛区的热身赛,郭小侠去参加教练会了。
 
【小插曲】队员参加教练会和教练晚宴也算中南的传统了,陈老师为了节约经费,尽量让校队能多参加一个赛区,陈老师没有参加任何一场“免费旅游”,比赛都是队员自己去,队长负责处理需要教练的相关事宜,各赛区送的教练礼品陈老师也一般让队员们自己分了(金华的火腿,天津的麻花……)。
 
教练会完,热身赛没结束,郭小侠也赶过来凑一下热闹,以校队第一高的水题通过率果断切掉一道水题。。。
 
没想到瞎搞一通,热身赛拿了个第三名。也算个好彩头吧。
 
第二天正赛,一开场小斌斌果断敲起代码,交了一次错误之后赶紧调整马上就通过了,郭小侠一看题,不用解释也明白了,第一题是判断麻将是否胡牌,这小小苏和小斌斌可是棋牌高手。同场的 朝鲜金日成综合大学代表队据说不会玩麻将,第一题纠结到下半场。
 
紧接着郭小侠的水题1Y率不是盖的,两道水题轻松通过。
 
【小插曲】水题顺利通过对队伍的鼓励性是很大的。ACM赛场上一些不弱的队伍因为水题卡很久而严重影响成绩的案例屡见不鲜。
 
小小苏搞着DP,和小斌斌讨论着一个图论,郭小侠发现了计算几何题。
 
这个计算几何题其实更算是一个高中几何题,郭小侠明明知道结果应该是算一个角度范围的区间覆盖,但就是脑袋迷糊总是想错那个角度的计算方法。
 
小小苏的DP和那道图论卡了挺久,快要最后一小时的时候郭小侠随便编了点数据,小苏苏发现了DP题代码的问题,竟然是一句下标标反了,DP题通过。小斌斌也突然灵感爆棚,把拿到图论刷掉了。
 
这时候郭小侠的计算几何代码已经成型,但还是脑袋迷糊纠结那个角度怎么回事。小斌斌和小小苏继续读题,发现另一个图论题,小小苏知道模型是什么,也知道这个题……肯定做不出来。而小斌斌一声惊喜,想通了一道题的模型,就是陈立杰大神在江湖中流传的后缀自动机!比赛前小斌斌刚好准备了份模版,配合着小小苏的数据,把这道决定金牌的难题切掉了。
 
【小插曲】陈立杰——高二学生,codeforces全球排名第五,入选国家 OI集训队,发明后缀自动机。可能是因为codeforces的排名,高三意外得到google总部的offer。
 
历史惊人的相似,最后半小时,代码已成型,这道几何题通过,就是WordFinal的入场券。郭小侠调试着代码,明明心里就是那么清楚题目的模型,提交就是那么令人痛苦的Wrong Answer。倒计时。。。比赛结束。。。
 
小斌斌的小女友突然冒了出来。呃,这工作人员让进的?。。。无所谓了,反正比赛结束了,后面还有杭州赛区。
 
晚上颁奖前,志愿者告诉郭小侠看到了最终结果,是金奖。
 
【小插曲。。。这个还要不要插】志愿者——比赛主办方安排的学生为参赛队伍提供咨询和引导服务。
 
是金奖啊,小斌斌一听到,一下子抱住了郭小侠。
 
学校排名第七,金。郭小侠的妈妈发来短信问结果,郭小侠回复仅有一个字,“金”,这条短信郭小侠的妈妈很久都没有删。
 
学校排名第七,刷新了中南ACM区域赛成绩记录,跨在了WordFinal资格的线上,一切皆有可能。
 
另一边的罗大叔很遗憾,为了照顾罗大叔保研,安排参加了两场区域赛,到此为止两铜,罗大叔也要考研了。
 
回到长沙,天津的题目已经放在了杭电OJ上,郭小侠行云流水地敲完了那道几何题的代码,提交,Accepted!艹……
 
 
金华
 
还是用VirtualJudge系统,BMW做了一场模拟比赛,新队员小宇、小琦等几个队伍也一起做。
 
郭小侠看到了什么?我勒个去,这不是去天津火车上郭小侠打算出的题么!凸多面体放地上的最低高度,最小阴影面积……这辈子没见过这么巧的事。
 
金华的题做的很顺,时间到,BMW赫然出现在模拟Ranklist上第三名。小琦哭笑不得着说“老大,你们去金华赛区多好”。
 
小琦是郭小侠在中南大学贴吧发现的,那是11年暑假,郭小侠的妈妈突然喊郭小侠,说贴吧有个小孩发帖找ACM队友。郭小侠对这种事情是很敏感的,中南ACM很缺这么有主动性的孩子,果断找其加QQ私聊。这个发帖的孩子就是11年入学的小琦,做过N OIP,物理院。11年集训郭小侠带小琦认识了一下陈老师和校队,小琦很白很帅很腼腆。。。12年进入校队,训练很努力。
 
训练毕竟是训练,和正式比赛有很大不同,不过这场训练确实又给郭小侠增添了不少信心。
 
杭州
 
杭州的比赛简直是一场惨剧。小小苏开场就发现了几道水题,迅速敲起来,错了若干次,不过好歹是顺利通过了。郭小侠没水题做了,不过惊喜发现有两道计算几何,一道简单的顺利通过,差点拿FirstBlood。另一道复杂些,换着思路交了6次才通过,不过这道题全场没几个队伍过的,看到YES那一刻高兴地叫了一声。小斌斌的Splay也有了用武之地,也是一个没几个队伍通过的题目。这时候虽然和排名靠前的许多队伍一样是7题,但是无论是远在长沙的看直播的校队和教练,还是现场的BMW,都看到了Final的希望,因为两道全场过了几十个队伍的题目,还没做,而通过的两道题目,通过的队伍很少。
 
【小插曲】FirstBlood——就是dota或者LOL的一血,用在了ACM的比赛中,表示某道题全场第一个通过,2012年华为赞助国内ACM赛事,一血队伍有800元奖金。
 
造化弄人,一道是能想出的方法要开4GB内存,天方夜谭只好放弃,另一道是刚好没有做过的一个模型,最后半小时郭小侠和小斌斌才讨论清楚思路,小斌斌线段树更熟练些,就开敲。只过这一题,是进不了Final的,但至少能多保一个金奖。最后5分钟,敲完,本地运行RE(RuntimeError,内存溢出之类问题),找问题,问题在哪,这么熟悉的线段树为什么会RE,调试,RE,调试,RE……5,4,3,2,1……比赛结束。
 
原来小斌斌的女朋友从北京赶来一直坐在看台上,小小苏的女朋友也在外面等着。比赛结束,失落。小斌斌和小小苏带女朋友游杭州去了,郭小侠还要完成教练的工作,参加颁奖典礼。
 
两道题做出来就是亚军,没做出来就是……银奖的第一名。。。
 
WordFinal只能指望天津的第七名了,希望还在。
 
09、10两年的大陆Final名额是19个,11年骤然缩减到16个造成大陆委员会的极度不满,那年闹得沸沸扬扬很不愉快但没有改变结果。
 
12年大陆有22.5个slot(关于slot是否等于名额数这个问题一直存在分歧,我也不太明白),而大陆5个赛区排名前七的学校正是19个,按照年初亚洲ACM/ICPC主席对大陆委员会的承诺,中南应该能进Final,但是真正结果如何,依然是未知数。
 
协会
 
年初,郭小侠已把协会交给了小宇,但依然为协会的工作出谋划策。小宇整理了协会工作,并将4个部门精简为3个。对于这个改变,郭小侠很高兴,高兴看到小宇的行动力,和协会工作分配的更合理化。
 
宣讲会、知识串讲、新人赛等等,有了一年来工作的积累和专用机房这个大本营,工作进展的更顺利,效果也更好。美中不足的是,11年中南ACM的低谷,也许影响了新人参与ACM的信心。
 
新人的积极性和主动性,似乎也不如多年以前。条件好了,为什么反而不懂得珍惜了?有时候郭小侠会把这种现象归罪于现在的孩子的娇贵。但却也一直找不到答案。中南不再像多年以前那个ACM条件很差却英雄辈出的时代,像姚总赵教他们那样坚持、努力、疯狂的队员越来越少。前辈们恨不得睡在机房,而如今有了机房,坚持来训练的却寥寥无几。
 
坚持的人,有,像小琦,小安,小宇等等,可郭小侠觉得,付出了这么多努力,中南有了这么好条件,为什么差不多生源(没什么 OI选手)的电子科大一年能有6个金牌队伍,中南却没多少人愿意去为ACM奋斗,去疯狂?!
 
【补充】杭州赛区那个“4G内存题”为什么放弃呢。那道题最直观的思路是将坐标旋转45度后用线段树或树状数组进行统计,但数据量很大,直接开数组要开到4GB,想压缩又非常之麻烦且没有思路。我们现在用的大多电脑内存条只有2GB,把一台电脑的内存开满跑程序,想想都不现实。虽然这肯定不是正解,但赛后有人写题解的时候,真的就用这方法通过了,原因是写完代码才去看数据范围,发现4G好大但既然写了就提交一下试试看,竟然YES了!一方面是可能题目提供的测试数据并没有达到题目描述的极限,也就是实际使用不到4GB内存。另一方面是,那场区域赛的判题机可能是4+GB的。。。
 
 
2013年
 
梦断
 
1月初,ACM/ICPC亚洲区主席博客公布了2013年亚洲WordFinal资格。
 
大陆17支队伍进入世界总决赛。香港大学、香港中文大学占用大陆名额(在海外赛区取得很优秀的成绩),但在大陆区域赛名次不计,这样杭州赛区第八的复旦成了第七,出于对ICPC的贡献(11年上海赛区主办方,12年成都赛区出题),优先获得世界总决赛资格。这样活生生地把天津赛区同是第七的中南大学挡在了总决赛门外。
 
伟哥10年曾说过,没什么好抱怨的,如果有实力去拿区域赛冠军,谁也不能让你进不了决赛。
 
退役
 
郭小侠在中南ACM经历了好多了,从当年的姚总到12级新来的小遒,足足经历了中南七代ACMer,能说的太多,以至于退役时想写篇文章以表纪念却双手放在键盘上敲不出一个字。
 
蓦然回首,想起三年前填写集训报名表那最后一栏,“刷新中南ACM历史成绩”,做到了,释然了,结束,不过是微微一笑。
 
小小苏学习成绩很好(拿了国奖?),不用ACM的金奖也保了研,不过忙于比赛,没时间联系学校,保的本校研究生,郭小侠觉得收了小小苏的导师是幸运的。
 
小斌斌是想去北京找女朋友的,成绩很好保内也不成问题,保外就有点点危险,10级的小斌斌在ACM还年轻,郭小侠一直觉得小斌斌坚持ACM一两年,一定超越罗神,何况博客上那句“我要把中南带进世界总决赛”的目标还没实现呢。小斌斌是有点纠结,继续参赛和考研。
 
新篇章
 
郭小侠曾问副会长彭小山,小宇之后协会应该给谁呢。当年小琦来协会的时候,副会长彭小山就告诉郭小侠,小琦现在年轻,但是做人很稳,一两年成熟一些之后,是最佳人选。
 
13年,小宇渐渐把协会的事情交给了小琦。当年郭小侠是协会和训练新人两部分一个人抓,后来把协会交给了小宇,把训练新人交给了小斌斌,如今似乎协会和训练新人又到了小琦一个人身上。
 
这一年的新人发展状况还是有点令人担忧,比起小斌斌、小小苏、罗大叔、建军一代,差了不少,也就小琦还有点当年羽翼略丰的小斌斌的影子。老人还是不能一下都走光啊,小斌斌决定参加下半年的比赛,和小琦组队。
 
小琦你们加油啊,争取实现小斌斌博客上那句话。
 
毕业季
 
转眼又一代人毕业了,毕业典礼上张校长还特地点名表扬了一些优秀的努力奋斗的毕业生,罗大叔也在内,那几天老队员QQ群里都在调侃罗大叔,真遗憾年初结婚没去围观,不过“好父亲”真让罗大叔囧了一下,哪这么快生孩子。。。
 
 
——————————
 
这个帖子的故事到这里差不多就结束了,中南ACM的故事还有年轻人去续写,希望她的故事未来是辉煌的,嗯,一定是。
 
——————————
 
人物后记
 
姚总:研究生毕业工作,公司我忘了。。
 
赵教:卡内基梅隆大学Master,留美工作,google公司
 
木南:本校研究生师从蔡自兴教授,毕业,有读博计划
 
罗神:本科毕业工作,深信服,深圳
 
伟哥:本科毕业工作,阿里巴巴旗下(淘宝?),杭州
 
开仙:本校应用数学研究生在读,(数学院导师,我就不了解了……)
 
捷:保外,华中科技大学研究生在读,进入2012微软编程之美决赛,得到腾讯和微软实习offer,现在微软北京实习
 
杰:考入华南理工,研究生在读,得到腾讯和网易游戏实习offer
 
大象:本科毕业工作,腾讯,深圳
 
彭小山:(ACM协会副主席)实习一年,湖大金融直博
 
韩小帅:(ACM协会部长之一)本科毕业工作,华为,深圳
 
凌小艺:(ACM协会部长之一)本科毕业工作,腾讯,深圳
 
小邱:保研本校,师从邹北骥教授,研究生在读
 
阳仔:考入浙江大学软件院,研究生在读
 
乐乐:(ACM协会部长之一)教改班保研本校,师从王建新教授,研究生在读,继续为ACM协会做了不少贡献
 
小曹:已得腾讯实习offer,准备之后出国留学
 
罗大叔:考研协和医学院失败,保持工作,未放弃考研
 
建军:保送中科院,今年9月研究生入学
 
小小苏:成绩优异保研本校,师从王建新教授,今年9月研究生入学
 
小斌斌:成绩优异,是否保外未知,已得金山实习offer,下半年比赛主要为带新人,不会投入太多时间训练
 
郭小侠:考研本校,师从邹北骥教授,研究生在读
 
——————————本帖结束,谢谢观看——————————
 
 
中南ACM的历史当然远不止有文中出现的角色,中南ACM的每一步发展,都有着你们清晰的足迹。
 
谨以本帖纪念为中南大学ACM奋斗的那些日子,致所有曾为CSU-ACM共同梦想奋斗的前辈们。

==========================================================END======================================================================







一.数论 4 1.阶乘最后非零位 4 2. 模线性方程(组) 4 3. 素数表 6 4. 素数随机判定(miller_rabin) 6 5. 质因数分解 7 6. 最大公约数欧拉函数 8 二.图论_匹配 9 1. 二分图最大匹配(hungary邻接表形式) 9 2. 二分图最大匹配(hungary邻接表形式,邻接阵接口) 10 3. 二分图最大匹配(hungary邻接阵形式) 10 4. 二分图最大匹配(hungary正向表形式) 11 5. 二分图最佳匹配(kuhn_munkras邻接阵形式) 11 6. 一般图匹配(邻接表形式) 12 7. 一般图匹配(邻接表形式,邻接阵接口) 13 8. 一般图匹配(邻接阵形式) 14 9. 一般图匹配(正向表形式) 15 三.图论_生成树 16 1. 最小生成树(kruskal邻接表形式) 16 2. 最小生成树(kruskal正向表形式) 17 3. 最小生成树(prim+binary_heap邻接表形式) 19 4. 最小生成树(prim+binary_heap正向表形式) 20 5. 最小生成树(prim+mapped_heap邻接表形式) 21 6. 最小生成树(prim+mapped_heap正向表形式) 22 7. 最小生成树(prim邻接阵形式) 23 8. 最小树形图(邻接阵形式) 24 四.图论_网络流 25 1. 上下界最大流(邻接表形式) 25 2. 上下界最大流(邻接阵形式) 26 3. 上下界最小流(邻接表形式) 27 4. 上下界最小流(邻接阵形式) 29 5. 最大流(邻接表形式) 30 6. 最大流(邻接表形式,邻接阵接口) 31 7. 最大流(邻接阵形式) 32 8. 最大流无流量(邻接阵形式) 32 9. 最小费用最大流(邻接阵形式) 33 五. 图论_最短路径 34 1. 最短路径(单源bellman_ford邻接阵形式) 34 2. 最短路径(单源dijkstra_bfs邻接表形式) 35 3. 最短路径(单源dijkstra_bfs正向表形式) 35 4. 最短路径(单源dijkstra+binary_heap邻接表形式) 36 5. 最短路径(单源dijkstra+binary_heap正向表形式) 37 6. 最短路径(单源dijkstra+mapped_heap邻接表形式) 38 7. 最短路径(单源dijkstra+mapped_heap正向表形式) 39 8. 最短路径(单源dijkstra邻接阵形式) 40 9. 最短路径(多源floyd_warshall邻接阵形式) 40 六. 图论_连通性 41 1. 无向图关键边(dfs邻接阵形式) 41 2. 无向图关键点(dfs邻接阵形式) 42 3. 无向图块(bfs邻接阵形式) 43 4. 无向图连通分支(bfs邻接阵形式) 43 5. 无向图连通分支(dfs邻接阵形式) 44 6. 有向图强连通分支(bfs邻接阵形式) 44 7. 有向图强连通分支(dfs邻接阵形式) 45 8. 有向图最小点基(邻接阵形式) 46 七. 图论_应用 46 1.欧拉回路(邻接阵形式) 46 2. 前序表转化 47 3. 树的优化算法 48 4. 拓扑排序(邻接阵形式). 49 5. 最佳边割集 50 6. 最佳顶点割集 51 7. 最小边割集 52 8. 最小顶点割集 53 9. 最小路径覆盖 55 八. 图论_NP搜索 55 1. 最大团(n小于64)(faster) 55 2. 最大团 58 九. 组合 59 1. 排列组合生成 59 2. 生成gray码 60 3. 置换(polya) 61 4. 字典序全排列 61 5. 字典序组合 62 6. 组合公式 62 十. 数值计算 63 1. 定积分计算(Romberg) 63 2. 多项式求根(牛顿法) 64 3. 周期性方程(追赶法) 66 十一. 几何 67 1. 多边形 67 2. 多边形切割 70 3. 浮点函数 71 4. 几何公式 76 5. 面积 78 6. 球面 79 7. 三角形 79 8. 三维几何 81 9. 凸包(graham) 89 10. 网格(pick) 91 11. 圆 92 12. 整数函数 94 13. 注意 96 十二. 结构 97 1. 并查集 97 2. 并查集扩展(friend_enemy) 98 3. 堆(binary) 98 4. 堆(mapped) 99 5. 矩形切割 99 6. 线段树 100 7. 线段树扩展 102 8. 线段树应用 105 9. 子段和 105 10. 子阵和 105 十三. 其他 106 1. 分数 106 2. 矩阵 108 3. 日期 110 4. 线性方程组(gauss) 111 5. 线性相关 113 十四. 应用 114 1. joseph 114 2. N皇后构造解 115 3. 布尔母函数 115 4. 第k元素 116 5. 幻方构造 116 6. 模式匹配(kmp) 118 7. 逆序对数 118 8. 字符串最小表示 119 9. 最长公共单调子序列 119 10. 最长子序列 120 11. 最大子串匹配 121 12. 最大子段和 122 13. 最大子阵和 123
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值