Farewell, OI!

听说写退役感言是传统,那我也写一个吧……

 

似乎很多OIer会对信息学竞赛怀有一种特殊的感情,我可能没那么强烈。NOI之后,我最主要的感受就一条:结束了,终于结束了。

 

初一最早听说有信息学竞赛的时候,我其实是拒绝的,因为当时我是一个搞数学竞赛的骚年……但还是抱着试一试的心态去了,结果就一发不可收拾,初中是OI数竞一块搞,高中就翘掉数竞全力搞OI,直到现在。

 

我对于OI的记忆大致分两半:一半是浮躁,一半是干活。

 

浮躁的自然很爽。

初中被xwy、cjj、xys、sqh等一堆人带着打CS,NOIP前联机大家被专家BOT血虐,怒而上半自动狙+屏幕中央小红点。

初三愉快地和高中的OIer搬到一起,开始和zjm、wyf、cyr、光神、峰神等一堆人连红警,机房最多凑过八人局,几十辆V3火箭车在河边排开,导弹在空中爆炸的气浪让对面的防空车跳起。

连求生之路,四人打剧情始终过不去游乐场那一关,站在台子上总是被Smoker拖下地然后被各种吊打……

连MC,我的最爱是建一个深埋于地下的掩体当家,然后在地底种上农作物等一套完整的维生体系,这个事在不同的服务器里干了好几次,其中只有一次是最满意的,连树都种上了。

每次出去比赛都是浮躁高峰,一堆人趴在宾馆床上连红警/CS的感觉不能更赞。CTSC/APIO2014时人太多,把酒店房间都给弄跳闸了……

高二,上一届机房党纷纷退役之后浮躁的就少多了,也就是看电影、WOT啥的。电影倒是真看了不少。

 

干活……内容比较复杂。

初中就是各种花式刷题,找COGS上历年省选和NOI试题刷。

高一开始刷USACO Training,然后刷历年集训队论文,刷完了刷集训队互测题,刷了两年的互测题再刷集训队作业,14年是50道TC,15年是100道CF和50道USACO月赛/GCJ,我刷完100道CF后刷了几道USACO,就结束了。

总共做了有1000多道题,但我最开心的倒不是刷了多少题,而是往COGS上添了几百道题目,大概就三块:整理了一套完整可做的USACO Training列表(除了Chapter 6);把00年开始的集训队论文题中能放的都放到了COGS上(当然也有我自己懒没写的,就跳过了_(:з」∠)_);把11年和12年的集训队互测题放了上去(也有少数没放的……)。剩下还有一些零散的TC/CF/USACO,我看着有意思就放+博客写题解,没意思就罢。还有刘汝佳训练指南上的一些题,包括插头DP那一节的全部题目,个人感觉这是我OI生涯中干过最毒瘤的事情了,哈哈。这些题有不少人做,包括衡中以ztx为代表的若干神犇和十一中的Chenyao神犇,还有我校的wjx、zlx、lyc……总之,后人如果也做这些题的话,就不用像我这样花式Google数据和花式随机造数据了。

 

当然还有出去培训和比赛。

初一的时候参加了HAOI初中组,写了个大暴力排序(当时还只会选择排序)+骗样例,貌似拿了个第6名啥的,当然初中组这种蒟蒻水平都是小朋友自己玩……

初二参加了NOIP普及组,拿了个250分(貌似报名费就是250……)。

然后参加了HAOI高中组,以为A掉了“外星人”那道题,还兴奋地给小伙伴们讲做法,结果后来发现是错的_(:з」∠)_。

初三NOIP2012提高组考了200多分,好像是二等奖。

13年冬令营去晃了一圈,那次是在电子科大办的,住一个不近不远的酒店,那次翘了所有的晚上讲课蹲在酒店玩游戏,翘了半天(貌似)英文讲课去看007电影。现在还记得有一位教授讲的,用程序模拟合肥托卡马克装置中氦轰击对容器壁的影响(应该是这,只记得大意了),他说“讲这些不是为了让你们听懂,而是为了让你们开阔眼界”,深以为然。王宏讲IOI题目出很长的原因是为了防止领队泄题,还说个人感觉韩国队干过这事(……)。电子科大的早餐非常好,闭幕式搞了个会餐,饭和节目都不错,excited。那次是用常老师的名义去的,所以没有参加比赛,比赛那天在宾馆对着纸质题面愉快地写了大暴力,晚上丽洁讲题全程没听懂,发现自己真是什么都不会啊……

13年参加了APIO,但没参加CTSC。APIO是在北大,比赛前河南众人绕着未名湖散步,路上和郑外的ck神犇(ps:此君特点是喝水多,曾有在省实验到火车站的公交上干掉2.5L水的光辉事迹)扯了半天地震武器,云爆弹啥的。比赛用的是Dev-C,还摸索了半天用法(当时英语渣)。我作为一名蒟蒻专攻提交答案题(因为前面两道都不会……),在线显示得了40来分,出成绩的时候貌似又成了20来分,总之胸牌滚粗。考试结束之后大家说去吃KFC,在1.7公里外有一个,结果走了半小时才到,ck曰:望山跑死马啊……

13年NOI打了个酱油。Day1大暴力,Day2大暴力,提交答案题大家都是全输0,能得十来分,我不知道脑子怎么抽了全输1,就两分,恰好弥补了笔试丢掉的两分,结果总分250(我跟250有缘……),铜牌线245,于是卡线铜牌,对了,多那5分还是来自于某道重评后给大家都加5分的DP题╮(╯▽╰)╭

值得一提的是NOI2013的团抗。这一年的团抗是“圈地为王”,我、cyr、wyf等人分工合作,在尝试后写了一个能搜索11步的程序,后来证明这个思路是正确的,高分的各队都这么做。当时缺乏写长代码的经验,搞的有点混乱,直到NOI上还在完善代码。弄了个什么“威慑度”,用各种加补丁的方式试图解决了“逻辑锁死”问题,反正个人感觉代码写得一片鸡飞狗跳。最终决赛现场欢乐无比,比如丧心病狂的河北代码(在最初的策略失败后改成追着人跑,誓死把你拖下水……),众多异常退出的错误,还有代码奇异的走位……最后拿了第6,奖品是ipod
shuffle,看着近1800行的代码还是很有成就感的。

NOI2013是在电子科大另一个校区办的,宿舍有水有电没空调,湖南队出去住还被杜子德批判了一番。

高一,NOIP2013拿了450分,终于有了一等奖……

WC2014持续打酱油。这次是在八十中,看守甚严不让外出,于是我们请了一次假,去外面超市搬了两箱零食回来。讲了哪些课,其实我已经不太记得了,只记得我们带着插线板抢占最后排中央唯一的插座,然后给旁边众人插线板接插线板,最长转接三次……应景的是,有一道题大致就是给个电阻网络,求等效电阻。这次也是最简单暴力+提答,甚至连稍微复杂一点的暴力都没写,然后就奇奇怪怪地拿了个铜牌。

HAOI2014稳妥进队(题比较水,有个计算几何题本来过不了,但没出坑人数据)。zjm提前交卷,悲剧地被监考老师认成初中生,发了初中的密码……结果卡线没进队。wmy也没进队。

APIO/CTSC2014都去了,是在北航。首次见到了Chenyao神犇。这次考试也是各种跪,APIO非常傻叉地专攻一道Tree DP,结果前面的简单暴力都没写。最后还是拿了两个铜牌。没进成北航的航空航天博物馆,不开心。喝到了传说中的北冰洋汽水。

然后去学军中学培训了一段时间。

然后是NOI2014,在深圳外国语。考前给省队集训出了两套题,结果只做了一套,就和wyf去学军中学培训了。这次总之水平太弱,LCT不会写,卡时也不会,提答找不出规律,KMP树不懂,大暴力没看出来,最后斜率优化DP还写了个错误的链剖。卡银牌线铜牌,之前清华夏令营签的协议也没用。

这次团抗是麻将,Chenyao神犇基本写了全部代码。他对大工程的控制水平比我高到不知道哪里去了,最终代码简洁而优美。团抗现场他带着我膜拜各省参赛队,最后拿了个第二,奖品ipod nano。第一是甘肃,他们只去了两个人,白白浪费一个ipad mini……╮(╯▽╰)╭

NOIP2014满分。

WC2015之前和Chenyao神犇去学军中学培训。

WC2015是在学军中学,住在对面的浙大宿舍。考试前一天,我们九个人愉快地去吃了一顿饭。考后又翘掉社会活动,去浙江博物馆转了一圈。考试拿了第一名,我也不知道怎么回事,人呐都不知道,自己不可以预料。

APIO/CTSC2015是在人大。CTSC2015第一天写挂了一点,第二天A了一道题,总之是一等奖。APIO满分。

然后又和Chenyao神犇去学军中学培训。

NOI2015前又和Chenyao神犇去学军中学培训。NOI2015第一天考完,校方组织看《模仿游戏》,在看到图灵破解出密码的时候,某人高呼“暴力出奇迹!”全场掌声雷动。第一天300,第二天230,是花一上午写了第三题,灵魂debug出425行代码。一共630,总之终于进队了。去了北大,不妨说个戏谑的理由吧:北大擅长搞学潮,哈哈。

 

我一直试图给高一时从数学转向OI找出原因。

OI较之数学更好进队或许是原因之一,但当时我其实真心认为数学竞赛的含金量高于OI,故自招的机会也更大。

更深层的原因可能是内核上的。

数学本质是一种纤巧而优美的逻辑结构,像一件富丽堂皇而又精美繁复的艺术品。我欣赏这种美,也乐于学习这种美,但或许缺乏将其作为毕生事业的热情。

至于OI,不妨先看看别的。

我始终爱好“复杂而精确的机械”,对此不妨直观地想象《模仿游戏》中的破译机器:无数齿轮、传动轴、连杆相互啮合,在电机的驱动下轰鸣作响。这是工业和科学的胜利,是人类智慧和力量的荣耀。

不妨再想想别的。探测器沿着既定的轨道飞往深空,精度“相当于抛出一根针,让它穿过50千米外的针眼”;恰到好处的中子射流在瞬间引爆氘化锂;压气机将稀薄的空气送入燃烧室,上千度高温的气体在喷口后形成明亮的马赫环;垂发装置的顶盖按次序打开,导弹在烟雾和火光中逐个升起……这是壮丽的,也是浪漫的,我所理解的“男人的浪漫”。

因此我总是对物理学和军事装备有一种情感上的喜好,直到四月份清华夏令营之前我还把“高考去某物理系/国防科大”作为一种选项(当然后者的最大障碍可能是太胖_(:з」∠)_)。

不过,其实我也没法真学这个,原因无他,手残。不是普通的残,是惊天动地的残,是惨绝人寰的残,是念天地之悠悠独怆然而涕下的残。从小到大的美术课,手工作品我一个像样的都没做出来过,画画被评为“有幼儿园墙上涂鸦的风范”。所以我要真去了需要做实验的专业,估计这效果跟杨振宁是一样的,哪里爆炸都想我,哪里着火都有哥……

但是!编程不一样。编程不需要手巧,会敲键盘就行。0就是0,1就是1,int main()就不是int mian(),long long long就是too long。我们可以窝在空调房里写出复杂性让巴贝奇的差分机黯然失色的程序,而不用动手拧哪怕一个螺丝。不要999,也不要888,只要21天,只要21天,帮你完成机械梦想,手残党福音,包好,包好!

因此,我在OI中的成就感事实上并非来自于那一个个“Accepted”,而是“构筑机械”的过程本身。将头脑中的逻辑结构在屏幕上奠基、立柱、砌墙、封顶,“We have laid the wide foundations, built it skyward stone by stone”,这是何等快意!

这也可以解释,我对OI的热情随着学习的加深实际上出现了某种程度的减退——因为新的知识和技巧越来越少了,常用的各种算法模块也已不再新鲜,题目更倾向于“脑筋急转弯”,尤其是CF的题。USACO的这个问题倒少很多,大多都是好玩的数学题,这也是我喜欢USACO胜过CF的原因。学习OI仍然是一件令人高兴的事情,但如果这次NOI失败,我也不会选择再考一年,因为剩下的也多是脑筋急转弯、刷熟练度和模块拼装,这不和高考一样嘛。

在整个OI生涯中,我始终在说“不当码农”,并似乎将其作为了某种提高格调用的信条。但仔细看来,我也并非是“不当码农”,而是“不当普通的码农”,就是那种在公司里写一个xx模块的码农,我总是有种参与“为国家/人类做贡献的大工程”的冲动——要是有人找我给空间探测器/EAST/LHC写代码,我肯定第一个去。或者要是没有涉密人员出国限制这种玩意,并且国家找我给飞机飞控软件/火箭制导系统写代码,我也第一个去。用巴顿的话说,“二十年后,当你在壁炉边,孙子坐在你的膝盖上,问你:“爷爷,你当年在干什么呢?”你不用尴尬地干咳一声,把孙子移到另一个膝盖上,吞吞吐吐地说:“啊……爷爷我当时在写一个投放广告用的数据挖掘算法。”与此相反,你可以直盯着他的眼睛,理直气壮地说:“孙子,爷爷我当年在给国家研制狗娘养的战斗机!”

仔细想想也是中二感十足啊。当然,这是偏颇的——我完全知道有多少伟大的成就是在公司研究院做出的,也完全知道贡献不分贵贱,因为科学仰赖于无数随机的探索,今天看似毫无意义的成果在明天就可能成为文明进步的柱石,如椭圆曲线和开普勒定律,如非欧几何和广义相对论。但我就是本能地反感写高频交易,或着广告投放之类的算法。情感必然是偏颇的,否则也就不是情感了。

 

上面扯了一通,其实并没有什么实际意义——空谈误国,实干兴邦嘛。作为年轻人,多学习理论,提高自己的知识水平才是最好的。向前!向前!向前!

 

《Farewell, OI!》有一个想法

  1. Orz萌帝!
    然而我cogs账号(UID:5002)莫名其妙被删了,您能帮忙看看嘛?
    而且被删的不止我一个,好多人的都被删了,这样看不成自己以前的代码了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注