重生之未能修改 AFO 结局遗憾离场

· · 生活·游记

\text{\textrm{\textit{\textmd{< Away From OI >}}}}

:::align{center}

一、前言

:::

IP JX.

在这个时间点写呢,主要是 NOIP 考完后就外培去了,刚回来,马上又要校内继续集训,然后就是省选,怕省选前没时间写,省选后没心思写,就现在“预制”一下。

从三年级有作文开始,语文一直是弱项,尤其是写作那块。所以可能写得不好,有点像记流水账,望见谅。

本文的讲述顺序不完全按照时间顺序。

:::align{center}

二、正文

:::

OI,全称 Olympiad in Informatics,译作信息学奥林匹克竞赛,是一门在中学生中广泛开展的学科竞赛,和物理、数学等竞赛性质相同。

这段缘,还得从小学说起。

:::align{center}

初见

::: :::epigraph[] 跨過晨昏線,一路向西, ::: :::epigraph[] 回到初識你的那一天。 :::

首次相遇,是以游戏的形式。当时班里有在用一个学习软件,里面有个游戏,大体内容类似图形化编程:通过拼接操作积木,让地图中的小人完成一系列任务后达到目的地,并且以积木的使用数量评分。具体的细节不记得了,只记得当时玩的不亦乐乎。四年级下学期的某天,信息老师来班上询问有没有人会编程,愿不愿意来参加编程比赛。编程?这个熟悉又陌生的词语,让我联想到了那个游戏。我想了想,觉得这个应该也算编程吧,于是我举了手。

在了解老师说的编程究竟是什么之后,我才发觉这好像和我理解的不太一样:没有确定性的目标,而是开放式的自由创作。老师给出的编程网站叫编程猫,是一个从未听过但是高级的名字。那个暑假,没有教程,没有老师,从一开始的一无所知,到后来能摸索出一些小东西,再到最后可以独立制作一些自己脑海中想玩的游戏。这相较于在纸上涂鸦的想象与娱乐,真的强太多了。编程比赛结束之后,我依旧近乎每天使用编程猫做一些小东西,当作游戏一样玩来玩去,一直到初一初二也是如此。

:::align{center}

再见

::: :::epigraph[] 这里的再见,是再次相见,也是再见。 :::

进入初中,我渐渐摸到了“敲代码”形式的编程的门槛,而 python 就是我所了解的第一种编程语言。初次听闻是在六年级,当时我觉得它很高级,但没有具体探究,直到初二开始自学了一点。当时只知道基本逻辑和语法,没有任何算法的意识。带着“敲代码好酷好神奇”的想法,在无数夜晚,我对着那本教程书,一行又一行地敲着一知半解的代码。后来在 b 站刷视频的时候还刷到了 C++ 全套教程,当时我全部缓存了,但可能是因为觉得太过高深,居然连一集都没有看,现在看来着实可惜,说不定能让我今年 NOIP 多骗个几分(bushi。

初二初三的时候,我的文化课属于理科好文科差,总成绩虽不算顶尖,但也还可以,勉强能放下点心思在其他内容上。我们当时的物理老师很年轻,是一位科技大佬,有 3D 打印机和激光切割机,会手搓水火箭,还有无线电证。有一次被同学拉去参加学校的某次水火箭任务,我负责操控充气的设备。任务顺利结束后,我也开始参与水火箭的制作,负责~划水沝淼㵘~做降落伞。几乎每天的晚自习,我们一帮人就走到那个远离教学楼的工作室,边工作边聊天,直至晚自习结束。

竞赛的概念,是一个正在准备化学竞赛的朋友告诉我的。那个时候的理解很浅薄,觉得自己文科不好走高考没有优势,所以也想搞搞竞赛。当时想的也是化学竞赛,因为我当时自以为化学还算挺好,而且并不知道信息竞赛是个什么,以为是那种做机器人比赛的,也没有上网主动了解。从那个时候开始,就经常在 b 站上看一些高中化学的视频,也小有收获。

初三下学期就差不多开始规划升学。先是去参加了一所私立学校的密考,然后再考试结果还没出的时候本校高中部来签协议。思考良久后选择了前者,最终密考成绩合格也顺利签了下来。中考后,又去参加了另一所公立学校的竞赛海选,我选的还是化学。虽然最终海选通过,但由于密码卡已经交了,好不容易拿回来之后天已经黑透了学校已经关门,就又送了回去。现在想来,要是当时没关门,也许我现在就在搞化学了(当然可能搞得并不好)。

:::align{center}

狂欢

::: :::epigraph[] 我沉睡的躯壳,有你重新活着。 :::

初中毕业的暑假本以为是最轻松的,没想到是整个初中最忙的。学校的暑期课程安排很满,与竞赛相关的是:七月选拔,八月正式上课。选拔前,得先选自己想学的科目,具体是数物二选一,化生信三选一,总共需要选两门,然后七月上这两门,八月根据考试结果选一门继续学。前者我选的物理,后者我一看到信息眼睛亮了,这个东西我正想了解了解,就选了信息。与 OI 的故事,就从这里开始。

最开始选信息的有 20 余人,水平参差不齐,我就属于没有基础的那一批。七月的选拔课只有两节,第一节上 Dijkstra、Prim,第二节上 STL,最后选拔考试就是代码七选五。选拔看上去很水,其实就是很水,基本上上课听了就还好。反正当时算法应该没听太懂,但是最后还是选上了。八月开课,同行学习信息的只有三位同学。为了赶上当年的赛程,我们的课程进度近乎起飞:先学完了基础语法,然后开始全面攻坚普及组知识。其中我印象最清楚的,是我们在十二月上旬赶完了树链剖分。

何其幸运,我们在第一年就顺利搭上了 NOIP 的旅车。赛时自我感觉良好,但是,本人死磕两小时的 T1,由于文件读写的文件名写错痛失 100 分,最后以 T2 仅 20 告别了第一年的赛程。成绩出来的时候人直接懵了,看了代码才发现是 freopen 文件测样例的时候改成 edit2 忘记改了!“想开点吧,我们至少是最早开始备战 NOIP 2025 的选手”。

然而这条路,走起来并不容易。根据我的理解,由于 OI 属于新兴学科,学科的知识库还未系统成型,整体又散又乱,难以把握,就算是维基也有不足之处;而且不同于其余学科常规的发展方式,在近些年 OI 的很多新东西都由选手所提出。所以如何学,从哪开始学,一直是自学路上的一座大山。加之我们上课的地点也因某些不可抗力的影响,在后来轮番变换:从最开始的信息教室,到后来的录播室,再到生物实验室,最后转移到信息教师办公室,直至现在。噫!也许,竞赛之路,从来不是铺着红毯的星光大道,它可能始于一个布满灰尘的角落,成长于一次次不被理解的辗转,最终能依靠的,只有眼前那一方小小的、发光的屏幕,和屏幕前不肯熄灭的眼神。

这里附上当时高一下学期初,仿照琵琶行的句式让 deepseek 写的东西(当然不是全由 deepseek 所写,借鉴了部分框架,修改了很多细节。而且 deepseek 还经常出问题,比如我让它写十六句它只给我十二句,人工智能写诗还任重而道远啊。):

甲辰仲夏,予始习璇玑于竞赛班。时七月流火,初识变量循环,至月末竟试以图论。同窗二十余,渐次零落。腊月寒夜,调试代码至三更,忽见荧屏绽光,有未来之我踏数据洪流而至。谈笑若故交,惆怅似前尘。俄而晨光破晓,惊觉乃南柯一梦。遂以算法为经纬,代码为宫商,凡六百一十六言,命曰《码客行》。

:::align{center}

云斗深宵人独坐,光标闪烁星河堕。
欲调递归栈溢破,顾流大兮时限逴。
“棠梨煎雪”频报错,半晌无果涿雨落。

恍见流光屏上破,炫光璀璨夜如昼。
十年客携星海至,双影交叠如镜磨。
抆泪就屏始操作,年少瞳映蓝光烁。
积木猫跃彩云过,社团课散中考婼。
七月骤雨洗暑气,新语初逢天地换。
循环裹晨昏流转,条件藏进退波澜。
岂料图论压城至,寻径雾锁连枝断。
三更推演邻接表,终得榜眼夺魁冠。
银键嘈嘈追蝉鸣,指针切切私语轻。
规划叠嶂雷霆隐,状态压缩山海平。
分疆月影碎玉镜,排序环链清霜凝。
回文镜照符文链,二分图映星河明。
三星聚散霜降后,键音渐乱思绪阻。
缩点割边犹未解,残月已斜代码坞。
幸有蟾宫客长在,清辉漫渡子夜苦。
双月同悬天河上,一照征途一照腑。

收指凝噎长太息,重开文档泪痕湿。
完形填空霾遮目,阅读理解弑吾心。
理化虽处中上位,总榜仍困下游席。
或可暂避学海苦,而入信息惘殆雾。
动态千嶂暮色沉,记忆万象晨光迷。
区间成树树无荫,分层成图图难觅。
流涌闸门锈迹重,或然之率畸影移。
有时苦思终不悟,唯见题解略知蹊。
课虽习而绩未期,双途俱黯志如迷。
千题障目心焚烬,百战归身月坠西。
师友箴言空自励,晨昏瘦影枉相嘶。
怕负青眼畏跌落,赞语竟成心头镝。

未来客闻笑展颜,挥手星河化经纬:
“曾历千嶂终破晓,遍历迷雾见星辉。
二分寻觅终南径,笃志终抵桃源扉。
人工神络待尔筑,鸿蒙万物候君维。
键盘可凿昆仑壁,代码能补苍穹亏。
当今之时虽云蒻,莫陷消沉自缚围。
他日若觉星河冷,回看双月依旧垂。
一照梧桐实验室,一映洛谷榜首碑。”
语如哈希定锚点,心似队列终不违。

骤醒汗浸蓝衫皱,晨光刺透子夜锈。
泪坠键盘凝珠漏,残星犹在屏上游。
蓝衣抚键循旧轨,恍见银汉入指流。

:::

学习是一件很枯燥的事情,但那段时间内,夹杂着对 OI 的热爱,我竟无一丝疲惫。由于学校课程安排是正常文化课课程穿插竞赛课,故每周只有三节课。既然课时过少,那我就每天中午吃完饭赶到机房“加训”。当推开机房那扇略显沉重的门时,一种奇异的宁静和期待便会取代一切——哪怕是爬八楼的劳累和下午可能犯困的危险。暂时脱离了紧凑的文化课程,我得以面对自己的内心世界,寻找着自己的节奏。后来,由于时间着实不够,学校又安排我们除周考外的每一节晚自习都去机房自习。这种出逃的感觉,简直和初中那段时间一摸一样,只是现在,身旁没有了挚友,目的也不再只是逃避。

转眼间八月的炎炎夏日已经映入眼帘,首次培训在济南举行。第一次见到这么多外省的大佬,觉得自己还是太菜了。我坐在自己的位置上,第一次如此具体地感受到“山外有山”这个词的重量——那不是远眺时朦胧的轮廓,而是当今近在咫尺、需要仰视的巍峨存在。

至今,已经是第三次来山东集训了。在 NOIP 考的不是很差的情况下,我开始准备着向省选进发。

:::align{center}

独舞

::: :::epigraph[] If ain't nobody stayed with me, ::: :::epigraph[] 那这是演给谁的戏。 :::

进发之际,环顾四周,竟仅剩吾一人。

学校看我们仨 -S 都是一等,便同意了我们第二次停课外出培训的申请。得知此事后,我怀揣着激动环顾四周,却发现这教室,只剩下我一人。从最开始的四人,到后来分班减至三人,再到如今的孤身作战,这孤独,似乎是注定经历的。确定集训相关信息的那天晚上,我心底是一种糅杂的恨与惜。我恨他们草草离去,竟仅留下我一人;我惜他们实力强硬,才华未展却已放弃。当然只是一时的念头,不是内心的全意,因为大家都有自己选择的道路,要怪就怪我自己偏要“一意孤行”,踏上这不归路。

不只是竞赛的独,也有社交的独。那刻在骨子里的内向,似乎是从初中开始的,具体缘由我也记不清了。这份内向,在进入高中后极具加深,演变成了一种另类的孤僻。孤僻到具体,是一种奇怪的行为:防备于稍熟之人,却又心无悸于陌路;畏与稍熟之人讲话,尤其惧怕同龄异性。我听说过一种观点,说孤僻其实是因为缺乏社交经验,情商低,不知道社交的时候该做如何反应。不知道说的有没有参考价值,反正听上去感觉挺符合我的。

也许是由于这种孤僻,除了几位在同一高中的初中同学,我在高中几乎没有要好的朋友。同时,这也给我集训的学习过程带来不便。讲课的迷糊之处不敢于询问老师、同学,只好独自使用 AI 尝试解答。但是 AI 的回答总是不尽人意,尝试询问多轮无果,只好罢休。有时候我也在想,从 E 到 I 的变化到底是怎么发生的,但是这个问题至今也没有答案。

由于 OI 的特殊性——每天都在和电脑打交道,这份孤僻,也让我将大部分时间与精力,投放在线上的交流中,而这就成了个无止境的正反馈调节:越内向就越投入线上,而越投入线上也就越内向。如何破这个局呢,我也着实不清楚。

:::align{center}

落幕

::: :::epigraph[] 像我的心缺了一块,却又不算有多悲哀。 :::

其实并没有对省选抱有太大期待。

高二开学,集训的时间其实并不算充裕。学校只允许停课两周,理由是防止文化课落后。当时的情况,是其余四门竞赛成绩没有得到学校的预期,导致对整个竞赛群体十分失望。而我们因此,在初赛还没开始的时候,差点被“乱棍打死”。之后十月份的 -S,成绩不是很理想,赛时没有想出来的 T2,赛后却觉得分外简单。成绩虽然不好看,但我们都是一等奖,学校的话终于传下来了,说可以停课外出集训,但是最终决定集训的只有我一个人。

十一月底,走出 NOIP 考场的那一刻,阳光洒在脸上,那是太阳温暖的问候。走在街上,浏览着屏幕,和同学一起吐槽黄黑黑黑的难度分配,交流着游玩教练模拟器的心得。出分的那一天,略感失望,但又抑制不住发自内心的喜悦:失望是 T1 因为无端特判挂了 15 分,喜悦是整体成绩还算不错。85 + 100 + 8 + 40,刚好卡在队线。这个分数虽不算高,让我拥有了争夺省队的资格。

但是这份喜悦持续并不长久,随着又一次趋谒山东而烟消云散,取而代之的是无尽的自我怀疑。在这,我见到了一位同省的强力选手。虽然我 NOIP 成绩略高于他,但是我各方面的履历和见识都远不及他。在他研讨问题的时候,我能很明显的感受到其思维的锐利与绵密。那是一种我无法企及的境界。加之听闻多数选手都败于 T2 手下,我开始怀疑这一切的成因。这一切的一切,似乎都是“正好”造就的:正好考了一个小众题,正好不是主流选手的舒适区,正好被我又捡了个漏。

顺着思路,我开始怀疑所有,怀疑我的付出是否真的足够,怀疑我的进步是否只是井底之蛙的错觉,怀疑我补出的每一道题是否真的已经理解,怀疑我学的每一个算法是否学会了运用,怀疑要是我都能得奖是否是评价体系本身就有问题。我甚至开始怀疑,每次公开赛的表现、每次打 AT 和 CF 的灵活思维、甚至每一次正赛的结果,是否都是巧合,只是上天怜悯的施舍?

我不知道,这一切,是否只是一场不切实际的梦。

:::align{center}

启程

::: :::epigraph[] 旧事已过,都变成新的。 :::

梦该醒了,但该醒的不是 OI 的梦,而是噩梦。

省选集训期间,被模拟赛打蒙的那个中午,虽值凛冬,内心却久久不能平静。强装镇静,冷静思索:我所恐惧的,真的只是题目做不出来吗?不。我恐惧的是被比较,是被证明“不够格”,是那个看似永远追不上的身影,和那个可能永远无法抵达的“省队”目标。我把这些恐惧,编织成了一个巨大的、名叫“自我怀疑”的噩梦。在这个噩梦里,OI 的概念与价值被严重扭曲,而我则变成了那买椟而还珠的郑人。我开始认识到,噩梦,是我给自己套上的枷锁:急于求成是原因,揠苗助长是行为,那么颗粒无收便是结果。

受困于当下条条框框的束缚,只能僵直地朝向着世俗功利的方向前行,而未能欣赏到沿途的风景。但是,多年以后,我所珍视的将不再会是无尽的刷题与模拟赛,而是那些路途中的种种——理解透彻算法思想的豁然,歪门邪道大力卡常 AC 的雀跃,以及和同学一起偷偷开黑的快乐,都将成为一颗颗时光胶囊。也许故事的结局是无缘于省队,但这仅仅是在我追寻 OI 的主函数中敲下了代表暂停的 Sleep,而绝对不是意味着结束的 return。在 OI 褪去所有功利的那一刻,做题便不再是首要目标。提升自我、追逐梦想,本身便成了一种自由而持久的惯性,拥有了比任何奖项都更为辽阔的意义。

“曾被孤立的,曾被忽视的,Just walk on water,Just walk on water”,愿所有 OIer 们有勇气、有实力对峙外界的偏见,追求自己心中所热爱的事物!

一切过往,皆为序章!

(集训结束和大佬们互换徽章,由于太过内向所以经过了强烈的心理斗争,只和几位斗争后还在教室的大佬换了。猜猜哪个是我的。)

:::align{center}

致谢

:::

感谢信息学奥林匹克竞赛,让广大 OIer 们有了学习、交流与提升的平台,也让我找寻到了人生的方向。

感谢我的父母,虽然他们并不了解算法,但是他们的信任与无条件的支持给予了我力量。

感谢所有一路上走来陪伴过我的老师、同学。

以上。

:::align{center}

三、后记

:::

写着写着,不经意间想起了《寻梦环游记》的台词。

\text{\textrm{\textit{\textmd{Death is not the end of life, forgetting is.}}}}

起初坐在桌前,只是想为这段还未结束的旅程写一条“预制”的结语。可当我真正敲下第一个字,回忆便如潮水般涌来,不再是线性的叙述,而是立体的、带着温度与气味的场景。

谨以此文,对抗遗忘。