大一上学期就认识了学长,当时只是想着参加蓝桥杯,老师就让跟着他们训练,我和R就这样入队了,当时日常训练就6个人,平时也就我们6个在那刷题,那时候听说了ACM,但是一直觉得那东西好像很难,好像很吊,也没想着大一可以去参赛。到比赛前两个月,学长通知我们,让我和R好好训练,跟着他们去参赛,让我们试试水,然后我们就踏上了不归路。第六届山东省ACM,Z学长带着我们两个大一的,组了ZRL队,水了3道题目,打铁。。。但是题目有Z学长读,觉得很舒服,毕竟我英语很烂,给完题意,水题就直接上手敲,没二话,但是算法题,那时候真的不会。
大一暑假的时候,队内就剩下了4个人,老师让我再拉几个过来,我煽动了舍友FH、DJ、HY,加上强哥,凑了8个人。暑假训练没有地方,当时老师就让我们去了刚建好的学院教学楼,去老师办公室训练。暑假留宿住在了北一宿舍了,看楼号就知道,那楼有多老了,训练了半个月左右放假回家,那时候是学东西最快的时候。那个时候我就担负了队长,依旧没有我们训练的房间,我们都是和学生会争那一个会议室,平时我们训练在会议室,开会的时候我们再走,就这样熬过一年。讲课没有教师,老师也没找学校申请,就让我们自己找个空教室,拿着老师的教师卡,7、8个人在那讲,在那听,在那讨论,那时候学会了一些简单博弈、搜索、最短路、最小生成树、KMP那些算法。
大二寒假带着一些蓝桥杯和我们ACM的人训练,找题,讲课,比赛,那个时候我们有了雷老师实验室318,和张老师的实验室604,也在那个寒假,TYK加入了我们。这样我们就凑够了3个队,训练几个月,觉得今年还是很有戏的,毕竟有了日常训练,讲课,日趋正常化。在ACM比赛前,蓝桥杯国赛水了一发国一,让我更添加了自信。
FH、HY和我,我们组了“打个大西瓜”去参加比赛,日常团队赛我们信誓旦旦,每次我们丝毫不逊色一队,可是比赛的时候,他们各种慌张,我的各种出错,最后翻船。。。去了三个队,两个铜牌,我们打了铁,当时的心情无法描述,感觉整个世界都黑暗了。老师全称关注着我们榜单,考完就打来电话安慰我们,可是,当时就那么结束了,一年的努力,打水漂,当然,只能说还不够努力。我们就这样,升入了大三。
回来之后,还要继续带队,ACM的路还要继续走,DJ退队去做了项目,两个学长退役,我们只剩下了6个人。找学院申请,去各个班级走班纳新,当时只去我们专业,群里拉入了60多人,讲课的时候来几个人,训练的时候来几个人,最后不感兴趣的也就都走了,来来回回剩下了8个大二的。在318那个30来平的小实验室,有了人满为患的感觉,讲课,刷题,比赛,依旧进行。那时候讲课已经不需要到处跑了,每周天都会在604讲算法,讨论题目,有事情做,很充实。
等到大三寒假,在一些大一群里,发出了对大一的纳新申请,整个寒假,训练赛,套题训练,群视频讲课,什么也都弄过,最后看他们的比赛情况,和做题量,留下了9个人加入了实验室,我们团队已经装大到了20多个人,讲课也不仅仅是5、6个人的讲堂了,我们也从318那个小实验室搬到了604大实验室。每周训练一两个算法,根据周末讲的内容,每周做算法套题,每周进行个人比赛。我也仅仅是根据我自己的理解,去进行着训练,之前看过一些别的学校的训练计划,模仿着进行过,对poj的题目,也进行分类刷过,但管理与训练上一直没有严谨的计划。比赛前一个多月我们就选了参赛人员,今年老师向学院申请了5个队,15个人的队伍,我们也信心满满,毕竟去的人多,获奖几率就高。一个月的集训,在实验室的白板上写上了15个人的名字,没人每天都填上便利贴,写上自己今天学了什么。每周我们都会进行团队赛,时间不好挤,我们就从下午5点比赛到晚上10点。五一假期,我们更是天天进行着团队赛,跟着山科的题目进行训练,在石油大OJ上进行着比赛。我们赛前我们请了一周的假,进行了5场比赛,大家也都筋疲力尽,但看的比赛结果也都还可以。就这样我们信心满满去了青岛。
今年强哥、TYK和我,我们组成了“小鸡快跑”算是作为一队去的。周六早8点的城际快车,11点左右签到入住宾馆,1点去参加的开幕式,3点进行的热身赛,一切都进行着。只能说这次房间太小了,总共就几支队伍,我们还和另一个队伍挤在一起,到了心情就不爽(还好第二天给调了位置)。热身赛3道题,我们三人一人看一道,我刷到C题,一看水,就上手敲,一发WA,有点蒙,改,又一发2Y。强哥说A题简单,就上电脑敲A题,敲了半天,觉得理解错了,就换人,TYK敲B题,水题,1Y。剩下的1个半小时就开始想A题了。我们在A房间,好多大牛,比赛不到一个小时就走了,已经AK了,然后走的队越来越多,我们也有些急,强哥说是DP题,我说是最短路题目,我就开始想怎么构造图,a宝石+b宝石能换c宝石,就建立a->c 和 b->c的关系,如何a更新了或者b更新了,c也就可能会更小,看了下数据,觉得Dijkstra过不去,我就直接敲了SPFA,强哥当时一直在旁边说,你怎么这样写,应该怎么怎么写,我也是一点没听进去,完全沉浸在自己的思路里,20多分钟左右敲完板子调整完松弛,提交WA,蒙。。。打印代码,让强哥敲他的思路。时间不太多了,最后半小时,封榜了,又改了下提交一遍,WA,当时想着,算了,给强哥敲吧,可能是错了,TYK又测了组数据,答案不对,一看邻接表没清空,哎,不应该!!改过,提交,3Y。结束。但我们并没走,看看java环境,调调能不能用,时间到,结束,找志愿者说明情况,电脑卡、地方小等问题。
第二天8点20进赛场,已经给换了位置,测试下环境,敲了个板子,坐等发题。上来一看G题水题,秒敲上,刚敲上写的是10^9+7取模,交之前,数一数到底几个0吧,一数8个0,还庆幸,得亏数一数,改成10^8+7,交,WA,靠,什么情况!!!然后发出公告,10^9+7,真是。。。这种错误也会出!!!题目也给错,9分钟2Y。之后看F题,TYK敲,交,WA,蒙。。。打印,改,我敲I题,强哥在看A题和B题。I题15分钟1Y,还好。然后再看F题,强哥和TYK发现BUG,改,交WA。就这样,一个F题一直到最后也没有交上,WA 7遍。这时候过去两个多小时了。看到J题有人做,我们就去想,卡半小时,TYK有思路,排序,从后往前加,一个中间变量temp记录从后面到当前值的和。思路没问题,我敲,代码很短,交,WA。打印代码,强哥敲C题。不知道题目中是否必须要卖一件物品,改。。WA(这里改的真蠢)。后来一看输出结果超出int,改longlong,抢过强哥电脑,改,交,209分钟3Y。封榜。C题强哥敲的模拟,我在纸上写的感觉有规律,最后看到就是组合数,假设m是w到x[ i ]的距离,n是时间t,求C(n,(n-m)/2)* c [ i ]即是第x个烟花(假设是烟花)在该位置爆出的次数。最后问题在于求大组合数取模上了,两遍RE,结束。揭榜后沾了个铜牌。本以为会更好,但也就结束了。
打了三年ACM,打了两年铁,水了一年铜,也是菜的可以了。但是庆幸的是,我还是在ACM圈混了一阵的,看到了那么多大牛,在IT界我觉得必须在ACM这里混过,才值得。我们学校是一个二本院校,ACM一直不受重视,没有老师管,全凭自己练,训练环境和实验室都是自己去争取,时间都是自己凑,日常讲课、打印材料消费,也都是队内凑出来的,但我们还是熬过来了,熬到现在,毕竟,刷题的快感,日常比赛的AC,激烈的讨论题目,是别人体会不到的。我的大学,没有各种旅游,没有各种网吧,没有各种兼职,只有ACM陪我度过,只有ACMer陪我度过,很充实。