再见,OI!——银色的 OI 回忆录

· · 生活·游记

再见,OI!——银色的 OI 回忆录

7k+流水账长文预警!

初见 \to 自闭

第一次见到 OI 相关的东西,是初二快放暑假时,看到班里贴的“高中信息学竞赛队”的广告,上面有道蔡徐坤题,当时题都没怎么看懂。又看到上面写的招生要求是“对信息学有强烈兴趣”“数学好”,还是“高中队”,就觉得和我没什么关系。当时确实是不知天高地厚,不知道竞赛是什么,也不知道它有什么用,每天只想着玩;考过两三次年级前十就觉得自己很 nb,tp 随便上;当时数学也很差,初二的简单数学题几乎没上过 90 分(满分100),每次都比语文英语低十几分。现在想起来,那确实是一段毫无压力,很快乐也很无知的时光。

中考完后,了解到了一些高中的情况,突然发现上 tp 比我想象的要难得多,裸分几乎不可能,于是想试试走自招。听说自招要有竞赛省一当敲门砖,于是决定试着学学竞赛。排除掉感觉很神仙的 MO、完全学不动的 PhO 、不太喜欢的 ChO 和要背一车东西的 BO,就只剩下了 OI(虽然我当时还不知道这玩意叫 OI)。去报名时,教练见我是女生本来不太想要,我软磨硬泡地硬是留了下来。

暑假旅行变成了泡机房。那是一个很自闭的暑假,一向以学东西快自诩的我狠狠地碰了壁。当时一块学的 wzy 、yhw、qts 都有一定的语言基础,教练为了照顾他们一直在赶课,一个月从基本语法、循环、递归讲到了最小生成树、最短路、线段树、倍增。我当时完全处于被强行灌输一大堆知识的状态,除了勉强背下 spfa 以外什么都没学会,写的代码几乎全是抄的。

我自己做的第一道题好像是 codevs 上青铜的一道题,题目大意是给你一个数,输出它四舍五入到给定位数的结果。当时想了一个小时都不会,后来还是看了题解。

中途有一星期左右吧,教练带学长们出去打 NOI 了,给我们留了一周假和 50 道作业题。收假后,好几个同学都完成了作业,但我因为感觉题太难只做了十多道(其实就是因为菜和颓),于是第一次模拟赛就几乎垫底了。

开学后也一样自闭,模拟赛考的最大子矩形、选课、求 \text{fib}n 项什么的全都不会做,甚至不怎么会写暴搜。就这样去考了 \text{CSP-S 2019}。格雷码不会算空间暴力 MLE 直接爆零了,树的重心写了链的 15 分,其他题连暴力都不会写。这是我的第一次正式考试,什么奖也没拿到,而和我一起学的同学有几个打了 100+ 分。

12 月又被教练疯狂灌输了 splay,KDT,LCT,莫队,点分治,SA等一大堆东西,每周都有好几天上课上到晚上11点多,差点被关在学校里,却几乎什么都没学会。寒冷的夜晚,我一个人走在回家的路上,想着学不动的 OI、年排 800+ 的物理成绩和没写的作业,忍不住想哭。渐渐地,又品尝出逆风而行的孤独的快乐。

划水 \to 吊车尾

紧接着的是漫长的寒假。整个寒假几乎一直在划水,学长组织的 5h 模拟赛总是花一个小时 A 了签到题就跑,自己也没做什么别的题。结果是,开学以后,晚我两个月开始学的 zzc 刷题量追上我了,lwc 比我多 200+ 题。和我一起学的几个同学中,wzy 和已经有省一的 yhw 已经可以切紫题了,而我只能勉强做黄题绿题;剩下的居然全选择了退役。

高一下学期,wzy 选择了停课,水平飞速增长;而 yhw 本来就基础扎实,水平比我高很多。于是,一个学期 30+ 场模拟赛中,我几乎场场垫底,甚至有好几次爆零,且基本每场都被吊打 100+ 分。好在这段时间我的文化课成绩还算稳定,心态不至于太炸。我当时也想过退役,但教练一直在鼓励我,虽然明显是为了让我占女队名额而不是看好我的水平;父母也一直劝我坚持下去,不管能取得什么样的结果都支持我。因此,我虽然对自己的竞赛成绩不抱期待了,也一直坚持在后面吊着,没有放弃。

停课 \to 快乐

听说 yhw、zzc 都决定停课了,我担心自己再被落下就再也追不上了,急急忙忙地决定停课(顺便拉上了 ysr 一起)。作出这个决定只花了几十分钟,完全是没有经过深思熟虑、一时冲动的结果。没想到的是班主任、教练和父母都表示了支持。

我给自己制定了初步的计划:先提高代码能力,补上之前没学会的算法,又在教练的建议下加上了 dp 的练习。补了补平衡树、树剖,但 splay 我一直也没完全学会,进而导致 LCT 也一知半解,FHQ 临到 NOI 前勉强能写下来。由此可见,我当时的确是什么都没懂地对着题解代码抄,抄完没抄对还要调好久。后来我也发现了问题,决定先暂时放下算法学习,以刷题为主,刷了教练和学长推荐的题单。这个决定虽然导致了后期我在算法知识上的不全面,但让我有了基本的做题能力,现在看来大概是正确的吧。

刚停课的时候,和同学们也不熟,整天自己一个人埋头刷题,大概一天能写六、七道题吧。这段时间积累的一些简单的做题套路,比如建虚点优化建图、单调队列优化 dp、单调栈求最大全 1 子矩形、换根 dp 等等。有几天我甚至梦里都在想题调题。后来和 zzc、lwc、yhw、gxy、xrc 几个人熟了,常常一起讨论问题,比谁做题多,大概是从那时候起机房里我们这一届形成了“卷”的风气。开学以后,在一周3~4场模拟赛的情况下,我每个月大概能做170道题,更卷的 zzc 巨佬能做几乎 200 道,听说这是上一届的学长们从没达到过的刷题速度。NOI 前,zyt 和 tyc 学长还在机房,每周会过来给我们讲课。有时,教练会安排我们打他们的模拟赛题,被吊打后意识到我和国赛选手还有那么大的差距,当时怎么也没想到我有一天也能成为国赛选手。那时我学 OI 才算真正入门了,我也是从那时开始爱上了 OI。那也是我学 OI 以来最快乐的一段时光,自由潇洒,每天都有满满的干劲,有意气风发的学长在前引路,有勤奋拼搏的同学相伴前行,没有升学的压力,也没有文化课的包袱。

省赛 \to 爆炸

$\text{NOIp}$ 中,T1 先乘后除变成 60,T2 没写哈希只有暴力 48,T3 对着样例找出 20 分做法却没想到分治,T4 匆匆写完暴力甚至忘了写 $\text{puts("-1")}\ 35\to25$ 。143 分没拿到省一,似乎从哪里都能挖出来 10 分,却又似乎没有任何失误,丢掉省一单纯因为菜。当时,省里排在我前面的有 16 人,全国排名 1200+。 $\text{NOIp}$ 考完的那天,我们在机房颓了一个下午。明天,不知道还有多少人会来机房。虽然考前大家也常常开玩笑说“省赛退役”,可我第一次真正意识到有一些人可能要离开了。$\text{OI}$ 开始展露出残酷性,没人关心你付出了多少,刷了多少题,熬过多少夜。前途一片迷茫,全机房没有比我分低的。whk 巨佬 xrc 决定离开,和我同分的 zzc 也决定暂时回归 whk。 大概是因为有个女队名额吧,我觉得自己还没到退役的时候。那个晚上,我一个人在机房,自闭地学 LCT(结果第二天发现写的板子假了)。这件事不知道直接还是间接导致了全机房开始学 LCT。紧接着,类似地,似乎是在我带的风气下,大家又一起学了 SAM、PAM、李超树,并入门了多项式,还在 gxy 的带领下做了一些神仙毒瘤题,例如[丢失的题面](https://www.luogu.com.cn/problem/P5042)、[幽灵乐团](https://www.luogu.com.cn/problem/P5518)。就这样学了一个月科技,刷题量下降到了一个月 100 道,算是开始入门竞赛算法了。 ## 外出集训、WC $\to$ 希望 1 月,zzc 又回来了。机房 9 个人外出集训。在强校,模拟赛天天被虐,他们人均 100+ 的题我只能拿三四十分。但强校就是强校,训练比我们系统化得多。跟着学校安排的课,我恶补了一波树论(包括但不限于边分、点分、LCT、虚树)、网络流、莫比乌斯反演,并继续学习 GF(但似乎没什么成效)。这段时间我的代码水平应该是上了一个台阶的,具体表现为从这之后我打比赛只要能过样例几乎从来没有 FST 过,想写的东西也基本能写出来了。 但也是从这时开始,我开始颓废了。每天可能有一个多小时的时间看 ysr 和飞飞抡锤子,还跟着飞飞入了保卫萝卜的坑,每天 5 点多回宿舍后就不怎么写代码了。 [WC](https://www.luogu.com.cn/blog/flyingfan/wc2021-you-ji) 终于还是来了,不知是超常发挥还是运气太好,我竟然以 153 分 Ag 了,而且在 SN 排 rk2,全国排名 163。1000+ 题的努力终于有了回报。出分的那天晚上,我抱着妈妈流下了激动的眼泪。眼泪里的情绪太复杂,我现在已经记不太清了,也许包含着意外之喜,也许发泄着过去两个月的委屈和压力,但一定有对未来 OI 之路的憧憬和希望。 ## 省选季 $\to$ 忙乱而沉重 在我的建议下,教练组织我们模仿外出训练时的训练体系,每人准备一块讲课内容,每人组一套题。真的很感谢同学们的付出,帮我补了一大堆知识。感谢 zzc,带我了解了 border 理论和最小回文划分;感谢 ysr ,教我了计算几何的基础知识;感谢 gxy ,带我入门根号算法。还有被延到省选后的课,感谢 sys 带我长了高难 dp 的见识,感谢 yhw 帮我补了分治的坑(虽然我一直到退役都没学会主定理/捂脸),感谢 pyf 让我补上了很多图论方面的漏洞。 我被分到的部分是组合计数。因为我的计数水平比较差,容斥、生成函数和很多多项式科技都完全不会,我也借这个机会恶补了一波知识。课件和例题我花了两个多月的时间才完成,2、3月基本全扑在上面,因此那两个月我一共只做了 70+ 道题,其中有一半左右是数数题。虽然花了很长时间学习的 GF 在之后的考试中从来没有用过,但这段时间的努力让我掌握了简单的容斥思想和计数技巧,之后遇到的数数题基本都能写出暴搜以外的暴力了。 之后是[省选](https://www.luogu.com.cn/blog/flyingfan/lian-ge-xing-xuan-2021-you-ji),全省第 13 名的我再次认真思考要不要退役。最卷的 lwc 、zzc 巨佬和最早停课的 wzy 还是离开了,这次不是虚晃一枪,而是真的不能同行了。我靠着女队名额苟进了省队,因此一直对他们感到愧疚,总感觉自己凭性别挤占了他们的位置,好在后来有了 Ag,总算是对得起这个名额。 大概从这时起,我面对 $\text{OI}$ 的心情沉重起来,这是一条太残酷的路。我开始关注 $\text{OIer}$ 们,那些挥洒过爱和泪的,那些走到过巅峰的或遗憾离开的。我喜欢看别人的游记,看他们除了 $\text{OIer}$ 的身份以外是怎样的人,看他们如何一步一步地向前走,领略各种各样的 $\text{OI}$ 情怀。这个习惯一直保持到现在。 [《写给OIer们的一些话》](https://www.cnblogs.com/mathematician/p/12633276.html)感动了我许久。 >我们终究探索出了一条从未走过的路,那便是**以OIer本身为主导的OI模式!** > >这样的模式是偏向于“用爱发电”的,它的核心基础是**OIer们对OI本身持久的情怀**。 > >时间、运气、命运对OIer们来说是残酷的字眼。再强的OIer,也有退役的时刻。再努力的OIer,也难以保证他在省选或NOI一定能够有和他的付出对等的回报。这是很多OIer心知肚明的事实,也是我们无力感的根源。 我向每一位向前走的 $\text{OIer}$ 致敬。 ## 颓废 $\to$ 低谷 也许是因为两位卷王的离开,机房开始了一波颓废。每天都有人在玩 MC、三国杀和其他我不太懂的游戏;在模拟赛时,趁教练不在时讨论题目做法、搜原题已成常态。我也常常成为颓废的一员。我知道这不好,这不对,但是那确实是我学 $\text{OI}$ 以来状态的低谷——完全做不出题也完全没有心思做题,似乎已经失去了对 $\text{OI}$ 的兴趣——于是只能投身颓废,整个 5 月只做了 60+ 道题,是巅峰时的 $\frac{1}{3}$。 在这种情况下,PKU/THUSC 悄然到来,大家都考得不太好,我拿到了一张废纸(详见[PKUSC2021白给记](https://www.luogu.com.cn/blog/flyingfan/pkusc2021-bai-gei-ji))。 紧接着的是一周后的 APIO,也完全找不到比赛状态,嘴了 180pts 发现没时间写了,再加上 $\text{IOI}\to\text{OI}$ 赛制,暴力写挂也不知道,最终只拿了 Cu,全国排名 390+,再次全机房垫底。 ## 最后冲刺 $\to$ 压力山大 6、7两个月,我们再次外出集训。借着新环境,我更新了自己的心态。6 月的刷题量又回到了 120 道,这是我今年月度刷题量的最高值。这段时间我尽力补了近 5 年的 $\text{NOI}$ 题目,从 sys 和 gxy 的博客中选了一些较难的题目练习,并通过按难度随机跳题的方式补了补基础,模拟赛的题除了特别毒瘤的基本上都补了,再次全面地提高了自己的水平。 值得一提的是,6 月的模拟赛中我一直被同校和外校的巨佬们吊打,但不知是不是 6 月的努力起了作用,7 月时我已经能和他们打到同一个分数段了,似乎还打过一次 rk1(记不清了)。虽然我自己在平时做题的过程中并没有发现自己有进步,但从结果来看,这段时间我的水平是有一个飞跃的。 PKUSC 让我意识到,我的数据结构水平,尤其是线段树的各种拓展,是个大坑。于是 7 月初,受 ix35 的启发,我花了一周左右的时间完成了[《线段树相关技巧的小小总结》](https://www.luogu.com.cn/blog/flyingfan/xian-duan-shu-xiang-guan-ji-qiao-di-xiao-xiao-zong-jie)。之后又花了两周的时间试图完成 [《基础数学知识总结》](https://www.luogu.com.cn/blog/flyingfan/ji-chu-shuo-xue-zhi-shi-zong-jie),很遗憾没有来得及在 $\text{NOI}$ 前完成。其中对容斥和没来得及写的行列式、矩阵、高斯消元等线性代数知识的复习(其实是重新学习)最终在 $\text{NOI}$ 时起了大用。 最后十几天我的心态已经完全炸掉了,因为我突然发现自己已经是一名国赛选手了,$\text{NOI}$ 即将到来,而我还完全没有做好准备,知识不扎实更不完备,几乎没有思维能力。有人说, $\text{NOI}$ 是 $\text{OIer}$ 的高考。由于我是子弟,小升初和中考都不会对我的升学有影响,因此 $\text{NOI}$ 也是我经历的第一次有决定性意义的大考。我常常打开一道题,因为没有思路而心态崩溃,甚至有时会生理上的心跳加速,喘不上气,必须要离开机房才能缓解。回到机房也需要下很大的决心,机房里似乎有压力化作的铺天盖地的洪水要将我淹没。最近三次比赛的失利像巨石一般沉重地压着我。每天,我都要花很长的时间和自己内耗,仅依靠意志力坐在机房里写博客或是一两道题。这是我学 $\text{OI}$ 以来最痛苦的日子,似乎完全失去了对 $\text{OI}$ 的爱与快乐。 我曾在完全失去信心的情况下写过这样一段话: ![](https://cdn.luogu.com.cn/upload/image_hosting/4q2li6av.png) 这种情况在两次和妈妈的哭诉后逐渐好转。我想了很久,从拿不到银牌一年时光空付到高考失利没学上,所有最差的情况我都想过了。我认真地问自己:“你怕吗?你怕什么?” 我什么都不怕。努力过了,就算是天资所限我也认了。于是我扔掉了所有让我痛苦、让我疲惫的包袱,坚定地向前走。我从来没有这样渴望胜利。 >往前走、往前看,哪怕前途一片迷茫,哪怕只是凭着惯性继续往前走——总有一天,会在自己漫长的脚印中找到方向。只是大概需要一点耐心。 ## NOI $\to$ 决胜时刻 到余姚后,我的内心异常平静,许久都没有过的平静。 笔试凭借对学长曾经的聊天对话模糊的记忆有惊无险拿到满分。 第一试不知道为啥完全不紧张。大概浏览了一下几道题,一眼认定 T2 就是 [CF167E](https://www.luogu.com.cn/problem/CF167E),也没太细想,反正代码不长直接开写,30min 连写带调过了所有样例。写完发现复杂度算下来 4e8 了,就造了组极限数据测了测,发现过不去又卡了卡常,最终 1h 左右过掉了,觉得暴力太难写也没拍。然后开始想 T1,一眼 LCT 的 access 操作,接着惊恐地发现自己已经不会写 LCT 了。放弃了 LCT 的想法后,大概手玩了 20min ,在特殊性质点的启发下发现这题就是我刚停课不久时写过的 [[SDOI2011]染色](https://www.luogu.com.cn/problem/P2486),40+min写完,肉眼查错后所有样例一边过。然后写了 T3 的 $O(qn)$ 暴力。此时刚过 2.5h,我已经有 228pts 了,心态有点飘,满脑子都是“NOI就这?”“我是不是稳了”“不会有什么坑吧”“我能打这分不得有一车人 AK”。去了趟男厕所(天知道工作人员让我去男厕所的时候我有多震惊),花了几分钟让自己重新冷静下来,继续想 T3 的暴力,只想到了那个性质说明如果图是个树的话一定是外向树,但没看到题面上图连通的条件,也不没想到缩点后把 DAG 变成树的 trick,思考了 1.5h 无果。最后 1h 试图写 T1 暴力对拍,但是暴力一直调不出来(可能主要是我心态飘了不想调了),肉眼查了查错就结束了。下午去查分,一分没挂,好耶!感觉 Day2 只要别干奇怪的事情 Ag 就稳了。 南方的台风太可怕了,于是社会实践没了,宿舍的热水也没了。休息日早上和同学一起 vp CF,但花了 1h+ 过了 D 题后就跑去看奥运会了。下午去嘉年华玩,领了一大盒榨菜(去爬山时的续命之物!很好吃!),又看了会奥运会。晚上突然就慌了起来,去操场冲了个 400,又听着《哥德堡变奏曲》在校园里随机游走,心态总算不太崩。 Day2 早上很早就醒了,迷迷糊糊地在床上翻来覆去时一头撞在了墙上,砰的一声彻底清醒了。从醒来开始就很紧张。好在进场后还能保持冷静,可能是因为习惯了紧张的状态吧。看完三个题,都感觉非常不可做,于是决定写暴力,事实上也真的只会写暴力。T1 感觉很像 01trie,但空间会爆炸,先写了 16 pts 的暴力,思考 1h 无果后开T2。一样先写了最裸的 $O(qn)$ 暴力,推了一会后发现特殊性质 A 答案的分子分母是相邻的斐波那契数,又试图推BC性质,什么都没推出来,最终写了 35pts。留了 1h 给 T3,照着良心样例写了暴力 28pts 容斥,又调了调时间就差不多了。整场比赛还是一题没拍,一是确实没什么时间了,二是觉得纯暴力没有什么可以挂的空间了,我也想不出来更暴力的写法了。出来后问了问,T1 居然是个乱搞!似乎全机房只有我老老实实写了暴力,事实上数据随机的提示已经很明显了,但我确实没想到。这场只有飞飞分很高,其他人都不怎么会写。下午去查分,又一分没挂!这样算下来我的总分已经比前几年的 Ag 线都高了,感觉稳了。 去听了高校宣讲,感觉如果高考挂了港中深也是个可以尝试的不错的选择。 6 点多排名终于出来了,我 rk120,很满意了。又发现这一天的紧张完全没有必要,我就算 Day2 不考也够 Ag 线。晚上兴奋地和家里打电话,又去冲了个 400。 很久没有这么开心过了,感觉之前所有的努力和煎熬都值了。我知道,我的 $\text{OI}$ 之旅圆满结束了 ## 感想与反思 以下仅仅是个人观点,若有不成熟或错误之处欢迎指出。 * 学竞赛之前,我曾觉得任何一门竞赛能在国赛中拿到银牌的都是天才,没想到我也有幸成为了我曾以为的“天才”。现在我觉得,只要能成功入门(参见我初学时的感受,太自闭了),坚持学下去,运气好一点进入省队,银牌也不难拿到。“天才”这个词大概是 rqy 、djq、dmy 这样的候选队大神选手才配得上吧。 * **$\text{OI}$ 的随机性巨大。**$\text{OI}$ 的科技树枝繁叶茂,而且生长飞快,可能刚搞出来的科技 5 年内就会普及。但每场比赛却只有 3 道题,只涉及几个知识点,且出题的方向和难度也随着出题人的不断更新和选手水平的不断提高而不断变化。除了拥有绝对实力、科技树点满或思维能力超强的选手,多数选手难以熟练掌握各个边角的知识,像我这样短时间速成的选手更是漏洞百出。因此,比赛能否考到你熟悉的知识点和思维技巧很大程度上决定了你这场比赛的成绩。我是这一点的受益者,考前一周突击的行列式和高斯消元帮我快速切掉了 D1T2;但也有很多比我水平高得多的选手(如 EA 等)因此被反向区分。所以我认为 $\text{OI}$ 比赛的区分度还需要提高。 * 上面提到过,我很喜欢看别人的博客。通过这一点,我单方面认识了 mrsrz、command_block、ix35、p_b_p_b、Itst、辰星凌、鏡音リン、EI、EA 等很多巨佬。在他们的博客中我学到了很多,我也在这里看到了那些传说中的天才究竟是什么样的。因此,**我非常感谢他们。绝大部分 $\text{OIer}$ 都是很好的人呢**。 * 关于比赛,我认为 $\text{OI}$ 作为一门竞赛,主要考察的肯定是**思维能力**。教练经常强调打暴力的重要性,但我反而认为靠东拼西凑暴力打比赛是没有前途的。一味盯着暴力不仅浪费时间,还有可能限制思路,这也是我 $\text{NOIp2020}$ 爆炸的一个重要原因。我认为比赛胜利的核心,不在暴力,而在于**快速切掉签到题**。不能挂,这样就能有 100 分保底;快速,就能给后面的题争取更多的时间。这样,后面两题不管是冲正解还是写暴力,结果都不会太差。我 PKUSC 的经历和 NOI D1 的经历刚好就是正反两个很好的例子。 * **对拍的技能一定要掌握,但是否要用则因人而异。**对我而言,2021 年的比赛,不管是正式大赛还是 CF,过了样例的几乎没有 FST 过。因此,我写对拍主要用于调不出来的时候找到一组小数据,而非检查代码写得是否正确。毕竟,写对拍是比较浪费时间的。 * 退役后我才发现自己真的很喜欢 $\text{OI}$ , $\text{OI}$ 也给我留下了深深的烙印。长期写博客让我在发 QQ 动态时也保留着数字、字母打空格的习惯,whk 学累时仍然会打开洛谷水一水犇犇。 * ……(想到什么再补充) 1.5k+题,2.4MB 代码,其中紫黑 1k+;298 篇博客,近 12 万字,见证了我付出的努力。 最后,我要郑重地说: $\text{OI}$ ,再见!