再见ACM(退役流水贴)

好久没登录,密码都忘了。

每天都在写各种业务,好久没有这种纯粹的算法题了。

中间跳槽一次面试了一下午很开心,开心接触了一下午的算法题。

这是三年前退役写的流水贴,后来因为一些事情删掉了,再重新放上来吧。

写的很乱,也懒得修改,也是一道美好的回忆吧。

真的很怀念打比赛的时光。

 

(1)结束啦
 

手指停了好久,却不知从何谈起,那些一幕一幕,又重新浮现眼前。

很久以前就很喜欢看一些ACMer的退役贴,有金牌final的,也有铜铁退役,无关乎成绩,单纯那些奋斗的过程,努力的开心让我很感动。

一直在想我写的时候会是什么样呢,或是荣耀?或是感动?或是遗憾?或是不甘?当这一切真正来临的时候,内心却是五味杂陈。大概,是对于一些人或者事的不舍吧。

这个故事很长。

就像一场长长的宴会,大家说说笑笑,戛然而止,很多人来不及一一道别,抱歉。

 

(2)ACM之前

相对于许多人,我还是比较早的参加程序设计比赛,虽然只参加了比较短的一年多,但是却是我程设生涯帮助最大的一个阶段,具体算法没学到多少,但是对于语言的学习,复杂度的认知,程序的整体结构把握等都有帮助。也看到了许多很厉害的大神,还有对我帮助最大的老师杨寅老师。当时NOIP打完的时候啥也没写,于是很多回忆就一并写了吧。

大概是高一的时候第一次接触程序设计比赛,在此之前家里也没有电脑,对于电脑的了解仅限于常规开关机。记不清是怎么通知的了,反正就是高一入学有个逼格很高比赛,要去训练参加。最后大部分成绩好的都去报名了,特别是实验班,当时大概是感觉这比赛挺有优越感,就去随大流参加了。然后就是每天晚自习,几个班的人过去跟计算机老师学习pascal。感觉好厉害的东西,学到循环的时候,卧槽好难,想了想就不去了。应该是我们上一年学长的成绩比较好,也可能是退的人太多,学校后来过了段时间又开始了二轮报名。也不知怎么的就被班里的几个同学一起忽悠去报名了。第二次学就很有自信了,因为循环之前的东西都学过。当时还有一个小插曲,就是不会的时候老师忙不过来,于是让新学的问以前学过的,也就是当时,我第一次近距离接触了我现在的妹子2333,可惜的是后来她就不学了。学语言这个阶段挺虐心的,反正是比当时的文化课难多了啊,不过后来去楼上学习算法就比较开心啦,虽然啥也没学会。最后选拔考试,我们这一批次留下来有十个左右,我们班占了一半。到楼上看到了许多已经去比过赛的学长或者同届,觉得他们好强,什么东西都会。我们的教材也从蓝色的换成了红色的了,当时杨老师为了让我们了解算法的美妙,给我们讲的第一道题目就是一道很经典的最大和子序列,从n3到n2再到n,着实让我惊叹不已。后来就是大概有半年多的楼上学习时间了,老师上的比较慢,学的算法也都是基础,可是对于当时的我,每一个东西都要花好几个星期,即使这样有时候也不能理解。学了那么长时间背不出最短路最小生成树你敢信,以至于后来去比赛的时候我感觉只会暴力for for for。我记得我大一暑假回家看到高一学弟已经开始写树套树了,暗自想我当时是有多傻逼。

再后来就是暑假留校到后来的备战noip了,暑假因为家在农村所以在朋友家住了近一个月的时间,现在想来当时还是挺努力的啊,至于为啥有老师教自己还挺努力为啥没学会多少算法呢,估计是太笨,以及思维太懒。当时就是每天做各种noip模拟题,上午考下午补题,我记得当时状态还不错,很多次都能到一等线。后来就是去南航考试了,我记得去之前老师给我们后一批定的目标是省一,老师问我们能做到吗,我犹豫了一下,能。然后就是在南航的NOIP,Day1 第一题暴力for for写了一会,第二题想了一会,暴力能拿60分,然后就是各种不服,在想复杂度对的算法,后来还真给我想出来了,关于有个关键细节想错了以至于整个题目只拿到了样例10分的我是绝望的,第三题看上去是烦的搜索,很好,不会,骗个样例,交卷。考完跟他们对了我第二题的想法,在知道我错了一个地方的时候,当时觉得已经没戏了,想着二等是不是有点分就可以了?然后抱着Day2去随便考考的想法了。Day1考完还和fyn,zqc去爬山了,感觉心情也好了些。然后就是Day2,第二天的题目比第一天难了一些,第一题就是个组合裸题,问题是我们当时高二还没学组合数,也不确定取摸的公式。于是我照着杨辉三角的递推尝试写了一下,推加打用了一个多小时,第二题第三题毫无想法,分数据范围打了各种好玩的for for for暴力交卷。于是noip就在我的暴力中结束了,过了几个月查分,意外的看到自己暴力分都拿到了,两天的第一题都满分,于是接近300分水了个省一等。而很多当时特别强的人都没发挥好,本以为很多认可以保送却很意外发挥失常。后来学校认为对文化课有影响,强行退了很多人,不过我是主动退出的,后来我们班就没有再继续的了,比较可惜。

那年期末考试,我考了班上倒数第二。

如果noip可以归于一句话,那就是感谢杨老师的启蒙教育。

 

(3)苏大ACM

后来自招南航只给降15分,没有一本线,高考发挥正常,最终两分之差来到了苏大,鬼使神差竟然选择了电子,现在想来选专业对我后半生影响挺大。

刚到苏大只想着好好学习,混迹于图书馆与宿舍之间,加几个社团,时而玩玩游戏。后来不知从哪听说了大学还有ACM,回想起当时写代码的快乐时光,就找时间开始去图书馆学习C语言,pascal转c还是挺容易的,语法什么的都好像,在hdu上提交了第一发a+b,不懂啥事eof于是wa了一个下午,看记录这道题目在第二天上午才过。后来在图书馆学了大概有一周,感觉无敌了好像会了很多,这时才想起来ACM还要报名,于是组织呢。后来在计算机学院的理工楼找了很长时间,从一个办公室问到另一个,最终找到了邝老师,邝老师给了我当时集训队的队长ljw学长的手机号,然后和我聊了很多,包括以前基础怎么样,校赛啥时候开始,怎么报名,大的也有苏大以前怎么样,未来目标是什么之类的。后来查了一下苏大的ACM历史,真是弱到不好意思说弱,后来进圈经常听人说自己怎么怎么弱校,氛围怎么怎么不行,而我们从最开始举办就参加比赛,打了十几年,最终成绩两块铜,当时觉得ACM好难。

然后就是后来的校赛,苏大每年新生赛有三场,我当时去的时候第一场正好打完了,只打了第二场和第三场,大概是很久没写过代码,也是不太熟悉c以及vc6.0的软件,最后打的惨不忍睹,被虐了。仿佛回到了高中,那种喜欢又回来了。打完校赛的时间,闲的无聊,因为上课都比较认真课后习题也做,所以就有了大量的空余时间,当时也没有笔记本,于是去机房刷题,很多时候一个机房我一个人在刷hdu第11页。再后来就是大一的寒假集训,一共七天讲课,上午老师讲下午学长讲,见识到了很多东西,至于学到的有用的很少。讲课完之后我又留在101实验室一周左右,期间特别搞笑,因为没有笔记本,ljw把他自己原来的小笔记本给我用,但是那个坏掉了不能联网,于是我在那个笔记本上写代码,一天写完最后我用手机提交。。这样特别烦躁,大概过了几次就不再用了,就是待在实验室看书,不懂的问学长或者自己查。ljw学长本人是学霸,可能ACM搞得也不太多,实验室氛围感觉当时也比较差,但是对于我当时帮助很大,基本上有什么问题都能耐心的教我,很多常识都是他教我的,我印象深的有memset,sort之类的,每次我想临时打个代码什么的他只要自己电脑不在用都借给我,为人也很谦和。还有wt学长,我进来的时候基本上还在真正搞ACM的也只有他一个了,我来之前他几乎凭借一己之力拿到苏大的第二个铜牌,他后来成为了从我从第一场区域赛打到最后一场的队友,无论题目难度如何,通神的手速都不会差。还有jyb学长,jyb思维分析挺强,我是新生的时候他也教会了我很多东西,只是后来训练就不经常来了。然后就是我的几个同届的了,我寒假进实验室认识的第一个人就是cp,第一次听他和学长讨论问题感觉很嚣张,后来慢慢接触,发现他为人挺谦和,只是不服输。cp就属于那种努力型的,大一的时候还不是很强,后来慢慢觉得,卧槽这人进步好快,到后来大二下的时候,感觉他当时无论手速还是做难题能力都进步了很多,反正都能虐我。然后还有pyj,杰哥是我认识懂得最多的人,当时无论问他什么他都能答出来,什么方面都有涉及,我觉得我整个ACM生涯最对不起的就是杰哥,杰哥是那种嘴巴选手,但是由于后来有了妹子而且具体训练地方较远能力提升就不太明显了,无论如何真心祝愿上海能取得好成绩吧。同届的还有wst,st挺聪明的,可惜没能投入太多的经历,或许每个人都有自己的选择吧。苏大这种弱校,每年真正在搞的也就这几个了,基本上后来实验室常年刷题的不过两三人。

不得不提的是教练徐老师,徐老师带我们真心挺好的。无论是要求我们集训还是带我们出去比赛,但是徐老师本人很多东西都不会,于是暑假集训讲题就成了鸡肋。我觉得如果可以多去实验室看看倒也挺好的。

而如今苏大ACM也慢慢开始发展了,从今年的成绩看明年估计还有突破,祝cp明年带学弟拿个金牌!

 

(4)那些比赛

大一寒假回来之后,很快就是邀请赛了,当时实验室以前的学长不多,所以新生基本上都有机会出去打邀请赛,两个大三的学长ljw和xks带我去了北京。北京当时的邀请赛看上去还是挺难的,两题从银到铁。我们就是后面的铁。第二个题目n4暴力,ljw说的思路我去打,第一次打这种比赛记得当时挺紧张的,最后n=1情况到封榜后才想到,罚时爆炸打铁而归。

当时还挺懊恼的,ljw跟我们说你们还年轻,以后还有机会。

后来东南大学举办一个苏鲁杯什么比赛,大概是省赛规模(可惜江苏没有省赛),我们也去水了一下,最后水了一个三等奖。影响最深的是后面有个人单挑,气球从开始挂到结束,赛后听说大四了,好强,一直梦想单挑一场比赛,无论打铁与否,可惜没有机会了。

大一结束的时候上海邀请赛,还是很开心大一可以这么多现场赛的,主要在弱校,没多少人抢名额。去上海的时候我,cp,pyj三个大一的组一个队,然后大二三个学长组一队。上海邀请赛水题太多,我们好像是过了四个,然后拿到了人生中第一个邀请赛铜。

大一下的时候训练很刻苦,经常是我,wt,cp三个在实验室打地铺,三个人打完cf睡觉,一度好长时间,现在想来这个过程很开心。然而大一暑假我个人训练进步倒不是很多,按照自己的计划学算法刷专题,刷的太慢了,很多该学的都没学。

后来大二开学就是网络赛和区域赛了,那个时候我,wt,,pyj组一队,网络赛基本上我们都能打进,只有一场鞍山没打进,我记得我们打进去的基本上都是靠wt手速晋级,而鞍山手速gg。区域赛我们选择了牡丹江和西安,都是比较远的赛区,多走点可以多看点风景。

去牡丹江是我人生中第一次坐飞机,体验是耳朵很疼。牡丹江赛区运气不错,wt手速很快,基本上一起想完的公式,他可以很快打出来,我记得两道签到题都是1A,而且手速特别快,做完还在银牌区。第三个概率dp的水题,我当时还没学过概率dp以至于杰哥说概率dp的时候我说了一句好像不对吧。。。做到十二点多我去打一个麻烦的贪心,最后提交一直wa,封榜后wt一边出数据我一边改代码,最后总算过了。于是三题水了个铜。

其实这个成绩还是挺满意的,第一年出去本就想拿个牌就不错了。后来第二站大赛区西安,水了两道签到题成功打铁。第二个题因为我wa了一发罚时跪。我记得还有一个字典树题目和容斥的题。容斥那个题目如果往公式上想还是挺好想的,然而我一开始就去照着那个dp想怎么矩阵加速,字典树那个题目wt最后也没能调过,而我连题目都没看。

西安打铁之后,肚子里是憋着一股子劲。回来开始疯狂刷题,打比赛,疯狂的学习算法,一些常用的算法几乎都学习了。几乎每天晚上都睡在实验室,翘课刷题,牺牲陪妹子的时间刷题,我就是想再拼一年,看看能不能让自己满意。当时邝老师三番五次找我谈话,说实验室不允许睡觉通宵,后来我打电话跟他说了好长时间,才勉强同意我偷偷在那边睡。大一绩点还挺高的,几乎每个奖学金都勾了,大二完全不在乎绩点了。我想起高中因为高考放弃noip,人生有几个梦想,喜欢就去疯狂。那段时间也加了很多acm群,加了很多神犇,开始经常水群,其实不为了学习多少知识,只是为了将自己置身acm的氛围中。其实自己在训练中还是走了很多捷径,为了快速学习算法很多东西掌握的都不够深,对于题目的思考也没能做到几天几个星期,现在想来这么弱大概即是因为没能像很多人那样扎实的思考吧。

 

然后就是信心满满上海邀请赛,我和cp,pyj组一队,这场打的真是烂。从一开始我去写完签到题他们开始打模拟题,然后我去写概率dp的题,写完wa,他们提交也wa,最后我把double改成long double提交过了,他们还在wa,我去看一道公式的题目,不会做,于是去帮他们看那个模拟题,发现是数组清空位置放错了,于是过了。最后cp去写公式题的暴力,然后发现公式,好不容易过了四个水题但是已经快要封榜了,我去看过的人多的g,cp要打e,他认为是个莫队,写完调试样例发现还需要修改。最后g我想出了贪心,但是没想到怎么优化复杂度,最后只剩半个小时强行暴力没卡过去,铜牌滚粗。

这场打完之后失望至极,调整了队伍,究其原因是水题不能卡住,卡住什么题目都没时间想了,不能多说。最后去编程之美和蓝桥杯路上和wt谈了一下,wt也愿意再打一年。

然后是暑期的多校,也是我们学校第一次参加多校联合,感觉题目质量参加队伍啥的都挺棒的,最后排名倒一般,大概是前一百吧。

后来是大三开学了,网络赛的时候估计是我们状态最好的时候了,五场几乎名次都挺靠前的打进去了,有三场学校排名都是二十多,学弟们进步也特别快,从暑假到网络赛,实力提升特别大。选择赛区的时候,本想去两场东北拿个好牌,后来多了个南阳的ccpc,听说队伍实力都挺强,我们本着能多打一场另外也可以看看自己实力如何,就选择了ccpc+沈阳+合肥。选择合肥一方面是没去过,另一方面人少估计银牌也好拿,而自己今年目标也就是银牌。从暑假前后就开始不再学新算法了,一直在做比赛,补题。因为目标是银牌,打完退役,即使学新的算法也不能熟练运用。

第一场南阳的ccpc,水题给的也比较多。开场通神和cp打A,我去找别的水题,很快看到H是个4*4的数独,通神过了A然后cp接着上去打H,打完提交wa,发现是一个小细节错了,然后cp过了H,这时L过了全场,通神和cp猜了一个复杂的公式,提交wa,然后换了个更简单的公式猜过去了。然后我和cp开了D,cp想了个dp感觉没问题,很快提交1A。打D的过程中通神看完G说是水题,是个枚举暴力,然后我一边说他一边打。这时cp开了C,他说dp套树状数组裸题,通神打完G然后cp接着打C,一个半小时过了六题强行被carry。于是接下来进入饭点时间,长达两个多小时没过题,K我觉的dp的话转移会比较烦,打了一半不想打,过了一会用了cp给的前缀和的前缀和思路,好不容易过了组样例提交tle,n2的算法提交tle,于是cp把取最小值那边常数优化了下总算过了。封榜还剩E和F两个题过的人是两位数,然而我们都没出。E是个老题n个数取数使亦或和最大不会,F这种图论的模型转化我们比赛也是想不到,最后七题银牌也挺满意的。

然后隔了一周去沈阳,沈阳热身赛的第四题傻逼公式没时间打了,也是这三场比赛的热身赛唯一没有AK的,攒了不少人品。正赛开场十分钟有人过B,通神要去打HASH暴力,我想了一下,暴力复杂度太大了,但是一时之前没想到怎么优化就让他先打着,很快过了样例,犹豫了一下提交AC,cp接着上去打D,一个gcd的题目,也很快AC,开场顺利。这之后好长时间没过题,很多队伍都是两题三题,M是个最短路问题,但是暴力建边会TLE,cp尝试了一下,果然T。然后我突然想到每个集合最多只能被用一次,然后就是个简单的两次最短路了,cp上去敲这个思路很快AC了。然后开F,又是很长时间没过题,F是个用gcd容斥的题目,但是暴力容斥会T,cp想了倍数筛掉,可是好像并不能减少多少。想了很长时间决定再试一下暴力,当时一时之间没有想到类似莫比乌斯那样的dp筛,于是我上去直接打了一个dfs的容斥,提交,AC,不得不说这题数据给水了。当时封榜前,我们还是金牌最后一名。想我一生离金牌最近的机会莫过于此了吧。最后我和cp看I,通神开了G,说是道水题,可以试试。cp也想出来I的一个复杂度稍大的解法,我没听懂cp的意思,于是我按照自己的想法去继续想。最后时间就在他们两个相互调试中结束了,而我最后一小时成功酱油。现在想想当时的情况,三个人如果做出来一题其实就可以金了,也算是遗憾吧。
  比赛结束时候体育馆响起《我的天空》,突然想起自己曾经无数个实验室通宵刷题,觉得一切都是值得的。
  其实这个成绩也是比较满意的,毕竟今年的目标就是银牌和ecfinal。只是结果显得遗憾,如果说沈阳是遗憾,那么合肥就该是血崩了。

 

合肥热身赛打完是银首,感觉银牌应该问题不大。第二天正赛,开场一个小时没有人过题,这个时候不知道为什么自己心态就慌了,大概是没碰到过这样情况,明明大家都没过题。然后坐我们后面的港中文过了H的一血,H是我开场就看的,当时一看就是个很烦的构造,本以为是中后期题目没想到竟是第一个题。然后我便开始做H,k=1的时候n=m,k>=3的时候通过ABCABC后面改成全部一样可以构造出3-n个,,然后k=2的时候我纠结了一会,大胆猜想n=m,大概十点半我们提交了第一发,看到H的正确率感觉要wa,果不其然过了一会返回wa。然后我开始想哪儿错了,这个时候心里特别乱。一个多小时过题目的人寥寥无几,这时候改了G的数据范围,一看就是要加个水题,于是赶紧让通神去看。通神手速是快,看题+写代码半小时1A。然后cp去开过的人多点的E。我继续想H哪儿不对,期间上了厕所。一直拖到12点,我让通神打个H的暴力k=2的情况,果不其然,n不等于m也能构造出来。打了几个表,发现了循环节为8的规律,欣喜若狂。期间cp做E,枚举和二分图匹配都试了,非T即wa。大概也是12点多,cp发现似乎二分图最小顶点覆盖似乎不可做,好像是个图,接着都以为是个带花树,完全没人意识到这是个np问题解决不了的。封榜之后我和cp争执起来,他要打带花树模板,我要一起做H,那个模板很长公式还没完全想清楚,我说H规律已经找到了,构造和k=3类似。争执了一会,cp谁要15分钟,我犹豫了一下,似乎回到了上海邀请赛,最后让给了他,其实说着说着我就开始害怕自己的构造不对了,毕竟H过的人少。最后时间在cp打带花树过程一点一点流逝,而我也对H开始绝望,最后cp说公式不对我对于H能过的信心已经绝望了。我呆滞的摇了摇头,最后时间通神打了F,说F是水题,无奈最后所剩时间实在不够了。最后几近爆零,靠着通神手速一题铜牌滚粗。最后一个小时强行开了三道题目,不能怪题目不正常化,只能说三个人的心态都爆炸了,都舍不得换题,想着等等这个好像就能过了,事实上无论再过哪题都能银牌,即使逆天三题都过这罚时也是银牌。

晚上退了所有acm相关群,大概有近十几个。一方面是退役了,留着总是忍不住要水群,另一方面也是因为退役战打的太憋屈,结束了就再见吧。很多人劝我再来一年,一定能出成绩的,这个任务就留给cp吧。目标定在银,虽遗憾但是也满足了,就这样再见吧。尽吾志也,而不能至者,可以无悔矣。Goodbye anyone。

 

 

 

(5)结束

这个故事好长。一写就写了这么多,从参加程序设计比赛到打完,除去高考的一年,自己花了也有接近四年的时间,四年了还这么弱啊,哈哈。四年这么多时间,就像是打了一场漫长的游戏,游戏结束,还在回味过程的厮杀。

感谢一路帮助过我的人,以及陪伴我度过ACM生涯的你们,ACM曾带给我快乐。

感谢妹子,虽吵吵闹闹,但一路伴随我,即使很多时候冷落了她。

感谢曾经的队友,我会记得你们carry过我的每一场比赛。

感谢ACM交流群,曾与大家谈笑风生是我的荣幸。

感谢我的同学们,每次要挂科的时候你们总能教会我知识。
 

最后,祝我们都有光明的前程。

posted on 2018-11-28 13:41  xiao_xin  阅读(1233)  评论(0编辑  收藏  举报

导航