OI 回忆录 / 退役记(半完成)
OI 回忆录 / 退役记
有点想把 WC 2023 上的答辩自我介绍放在这,大家以后万一需要也可以参考。
I began learning programming when I was ten years old. Then I entered Junior High School, knew about OI, and started learning OI. Two years later, I became the best junior high school contestant in NOI2020. In the next two years, I also got two gold medals.
Besides participate in contests, I’m also eager to promote the OI development in my school and in the whole OI community. In my experience of learning OI, my coach and the senior OIers in school helped me much. So after I won the gold medal, I began to accompany and assist junior students.
I have also done much work for the OI community, and I think this is the best way to repay those people who helped me on my path of OI. In my career, I made dozens of interesting problems, they can be found on some famous Online Judges. Since summer 2021, I have become an administrator of Luogu. My work for Luogu contains preparing and coordinating several Luogu monthly contest. Since summer 2022, I have become an administrator of UOJ.
The above is my experience, and now I’m standing here, wanting to enter China team, then keep training and do my best in IOI2023. In the future, whatever today’s result will be, I will keep my passion for OI and computer science and try to achieve greater success. Thank you.
首先我想流程式地回顾一下五年多来的和 OI 有关的经历,然后再写些别的经验感悟和相关内容。
2017~2018
我的初中就读于复旦二附中。2017 年 9 月或 10 月,我初一上学期。在平常的一天,班主任找到我,说下个月有一个信息学竞赛,请我统计班级里有哪些同学要报名——之所以找我是因为我是学习委员——起初有几个同学对此感兴趣,但是当我转达了这个竞赛需要一定的编程基础的要求后,没有同学报名了。那一天的下午,我拿着一张只写着我一个人的名字的名单交给了学校。
比赛名叫 NOIP,初中生报名的组别叫普及组。
首先考的是初赛,考了一些计算机常识,但还有许多我看不懂的东西:大题有一题让我用分治法求
大约一个月后就是复赛。复赛是上机考试,因此在正式考试的大约一两个星期前给了一个试机的机会。我现在回忆起来,试机的题目好像很简单,只要一个循环就做完了,但是当时的我不这么想:上次写代码也许还是小学四年级或五年级,因此 C++ 的那些基础语法对我来说也显得有些陌生。最终我在思考很久之后终于写出一段代码,然而在回家路上就看到了评测结果——0 分,因为我没有进行输入输出文件重定向。
终于在了解了一些考试的基本要求之后,我走进了复赛的考场。第一题非常简单,甚至不需要分支结构,第二题正好也是我会的类型,就这样我顺利写出了前两题的代码。第三题我就不会了,似乎我在考的时候编了一个做法,在不远的将来我知道了我写的东西叫做贪心算法。
最终我得到了 230 的分数,而上海的一等奖分数线是 215。就这样,在没学过一天 OI 的情况下,我第一次参加普及组得到了一等奖。
了解到 OI 就是这样一个绝对偶然的机会,不禁让我思考的是:人的经历有多少是由自己决定的?有多少是自己可预知的?
当然我也曾想过,如果当时没有报名会如何,研究的结果是,我觉得多半去学 MO。
NOIP 2017 结束之后,我认识了同校的同年级选手 yjy,以及初二的学长 cxy,他们都获得了二等奖,但是我们的分数其实都差不多。
此外,我还发现我们学校原来是有 OI 社团的。我这才想起六年级刚入学时(注:上海为五四学制),确实听到过有个计算机什么什么社的,但是当时我直接去了辩论社。
负责我们初中 OI 培训的是 FDFZ(注:复旦附中) 的陈老师。在 NOIP 后,大概是家长加入了一个 OIer 家长群,总之陈老师推荐我的家长带我去高老师的班里学习。
2017 年 12 月 30 日,我第一次来到高老师的普及组圆桌班。圆桌班正如它的名字,教室由几张圆桌和一块白板组成。同学们围桌就坐,桌与桌之间是拖线板密密麻麻的电线,圆桌区域的背后是空旷的地板——在之后的寒假中我知道了那是可以用来办 Pizza Party 的地方。比起教室,其实更适合说是一个空间。
这是我第一次接触到这样与众不同的课堂,虽然第一节课还有些胆怯,但我很快喜欢上了这种围着圆桌交流思路,要是有了想法就能在白板上展示讲解的讨论氛围。
上课的 OJ 叫做小明的 OJ,每次都需要输入一串 IP 地址进入(现在已经有域名了)。这也是我第一次使用 OJ,在这里我了解了很多写 OI 题所必须的基本代码能力。
于是,我开始了系统性的 OI 学习,从枚举模拟,到贪心二分,再到搜索和 DP。在此期间,圆桌班几经辗转,更换了数个上课地点。直到 2018 年 NOIP 的前夕,我已经学完了初等数论、堆、STL、基础图论等很多的知识点。
2018 年 7 月 16 日,我通过圆桌班的同学了解到了洛谷,注册了一个洛谷账号,由于 ix35 这个 id 当时好像被占用,所以我在后面加了一个下划线(后来改回去了)。曾经的洛谷有一个很 nb 的功能叫试炼场,我就从试炼场第一个开始做,慢慢往后刷题。不得不说,洛谷各方面的设计确实非常吸引初学者。尽管当时我没有任何人的好友,不使用社区功能,但还是愿意在上完课的一个疲惫的下午之后打开洛谷,做几道题练手。
转眼间 NOIP 2018 就来临了。我仍然只报名了普及组,因为我只学过普及组的算法。对于 NOIP 2018 的记忆我已经有些淡忘,只记得了第三题名叫摆渡车,是一道有相当难度的动态规划题,所以我最后只得到了 290 分。虽然这个成绩看上去有些差强人意,但是我并不是很在乎,毕竟过去一年 OI 学习教给我的东西有很多,这个分数远不是最重要的。
下一步的计划就是学习提高组的算法了。事实上,在 NOIP 结束后,我很快开始大战提高组的题。印象比较深刻的是,大战 D1T3 这题时我毫无思路,最后只好去看题解,然后被题解所展示的树形 DP 解法深深震撼。
2019~2020
NOIP 结束,我来到了提高组班。我有了几位新同学,他们包括同届的 zx,和下一届的 Kubic 以及 kys kyj 兄弟等。当时的课上我总是很兴奋,与 Kubic 和 Sai_0511 交流最多,我们和上面提到几个同学也经常是最早通过所有课堂习题的人。
赛季的前半年,我仍然保持着与之前一样的训练模式。也正是在这段时间,我学到了平衡树之类的一些基本数据结构,和莫比乌斯反演之类的(当时热门的)数学技巧。
让我记忆犹新的一件小事:某节课(据考证,2019 年 2 月 2 日)的内容是块状链表,习题一共有三道,第三题是一个非常阴间的题,没有人在课上能写出来。正好上完这节课后我就回老家了,回老家后自学平衡树,学完之后用平衡树做了这题的一些操作,剩下的暴力。我写下了直到当时写过的最长的代码,拿到了 25 分的高分。而这道题在课后一天被 Sai 过了。
以上平凡的发展一直持续到 4 月,某一天高老师建议我可以去参加省选组的课了。于是乎在接下来的几个月内我同时上着提高组和省选组的课。
第一次去省选组上课是 4 月 13 日,教室很小,我坐在了靠后的一排。上课的内容是数位 DP,好在 DP 这部分并不需要太多前置知识,而且也不需要什么码力,所以在下课后又奋斗了一些时间的基础上,我顺利搞懂了所有的题目。真正给我很深印象的是班里的许多上海顶尖选手。来自上实的 imalyd 年纪很小,学籍却比我还高一届,他永远带着一只小黄鸭出现。还有几位高我两到三届的学长 jtl,jzx,hwy 总是能很快解决那些对我来说很难的题目(一件印象深刻的小事:在讲插头 DP 的一节课上,jtl 用斯坦纳树过了一道例题,让我觉得非常高级)。此外,我也第一次见到了 wygz——之前初二的时候就关注了她的公众号“无忧公主的数学时间”。
究竟是在提高组还是省选组遇见的 zghtyarecrenj 我已经有些忘了,总之感觉他很有极客风范!
自第一节课之后两个星期的课上,我做到了一场前所未有的困难的模拟赛。题目来自 HNOI 2019,三题的题目名称分别是校园旅行,鱼,多边形。面对远超自己实力的一套题目,我爆零了。不过和往常一样,我不太在乎。
接下来的几节省选课中,我学习了后缀数组和 AC 自动机等字符串算法。当时我最喜欢的两个 OI 学习的模块就是字符串和图论,没想到过了多年,还是如此。
也是在那段时间里,叉姐(ftiasch)两次来到圆桌班讲课。第一次讲计算几何,第二次讲计数(之后好像还有一次字符串,但具体时间忘记了)。叉姐的讲课让我受益匪浅,在之后的若干个月甚至若干年时间里,我都多次重新打开 ta 的计数 ppt,学习其中某些题的做法或者寻找出题的灵感。一个印象深刻的例子:一两年后某次 BDFZ 出的一场联测中,有一道标程用树分治优化的树形 DP,我却发现这和叉姐课件中的一道题几乎一样,从而用维护所有重链顶祖先状态的 DFS 序 DP 通过了这道题。并且对于当时的我来说,叉姐的讲课补足了很多我所缺漏的知识,也给我的知识树上增加了一些异于常人的突出的知识点。我对凸性有了大概的抽象的认知,也对动态凸包,凸包与半平面交对偶之类的概念有了许多了解。虽然看起来是一些没用的知识,但是这让我感觉良好。
也许已经没人知道的梗:我跑的比地铁还快!
除了班上的学习外,我还需要自学很多知识点,因为从提高过渡到省选,中间差了半年到一年的课程量。我先从比较套路化的数据结构入手,在那段时间中仔细学习了主席树,树套树,cdq 分治之类的结构,做了一车大同小异的类似高维偏序的那种题。
转眼来到了 2019 年暑假。这个暑假是对我来说意义非凡的一个暑假,我有一种想要把其中每一次模拟赛的心路历程都写下来的冲动,但是年代太久远,我做不到;一件可惜的事是,原本我仔细写下了其中每一场比赛的题解,但后来似乎在换电脑的过程中被当成冗余文件删除了。
7 月,是省选班的知识点复习。可是第一节课我就傻了——复习-FFT/NTT/多项式。当其他人都在做各种在我看来奇奇怪怪的计数题甚至字符串匹配题时,我正在与蝴蝶变换大战;接下来的两节课都是我学过的知识点,还算平稳;第四节课是网络流,我很早就听说网络流是个很难的算法,但是从来也没学过,于是我又开始大战 dinic。每一天总是有十几道的题目量,我每天回家到晚上还在加班,终于基本做完了所有的题。在此过程中我学习了不少新知识点。
8 月,是十场提高组模拟赛加若干省选模拟赛。这应该是我第一次比较密集地打这种比较现代的模拟赛,在此过程中学到了许多的 trick。有一些简单的场是我能 AK 的,但还有一些抽风场很难:比如我记得某一场 T3 是求无向图的无环定向数,需要用到色多项式,非常恐怖。每天上午打完模拟赛,下午就和 Sai,Kubic,zght 等人一边吹水一边订正题目,很有意思。
紧接着就是 CSP 2019 的备赛(注:由于历史原因,2019 年 CSP 代替 NOIP,与之前一样是 2 天 6 题赛制)。我和其他一些暑假模拟赛打得比较好的同学组成“小分队”,每周多做一套题目,题目水平大概介于 NOIP 模拟赛和省选模拟赛之间?在此期间还做了一些模拟赛,记得有一场是 SH 内公开的似乎是 zjc 出的比赛。
CSP 2019 的经历我写成了游记:https://www.luogu.com.cn/blog/ix-35/csp-js-2019-you-ji-ix35-post ,这是我写的第一篇游记。我抓住最后一次参赛机会 AK 了 J 组,但在 S 组却有一些遗憾——D2T3 考场代码通过了所有的样例,却因为样例强度问题与多测的设置导致挂了 75 分,最终只获得了 363 分,比许多同学都低。
正如我在游记中所写的,我认为 CSP 2019 或者是稍后的冬令营就是我 2020 赛季的终末了,但读者也许已经知道后来发生了什么。下面我就从 CSP 结束说起,谈谈这将近一年的故事。
学期初,印象里是在 CSP 之前,EFZ 的金老师就找到包括我在内的一些初三 OIer,宣讲 EFZOI 和一些相关的招生政策。一同被公告的还有 EFZ 将会承办 NOI 2022 的消息——2022 年的 NOI 恰好是我们这一届 OIer 的最后一战——承办 NOI 意味着在相邻三年内都有相当数量的省队奖励名额,这无疑是一大利好。
当时好像说了高中招生时根据 CSP 成绩可以有一些优惠之类的(不保证记忆正确啊),但很快这一点就与我无关了——就在大概一个月后,我又一次来到了 EFZ,不过不是以 OIer 的身份,而是以 whker 的身份。在与数位初中同学一起参加了一场面试后,我获得了 EFZ 的(可能是)第一批自招预录取,也许这跟我前两年 whk 学得比较好,甚至考过一两次年级第一有关。
于是,我的初三生活十分惬意。这里简单说说除了 OI 之外的部分吧,我和几个同学周末的时候去 EFZ 旁边的一个机构处学一些高中知识,我只学了数学和化学。那真是一段令人怀念的时光,周末的两天一天在高老师的圆桌班上度过,另一天学高中 whk,下午和晚上都在上课,中间的晚饭时间则经常有不同的食谱。老师上课非常有趣,数学课会讲一些一试题之类的,化学课也使得我将来在上高中化学时比较轻松;与同学度过的每一刻也都很有意思,我们至今都保持联系。
2019 年的年底,PKUWC 到来了。曾经考虑过报名 PKUWC 还是 THUWC,但是听人说 PKUWC 没有 THUWC 那么恐怖,而且凭我的 CSP 分数想成功报名 THUWC 也许更困难一些,于是就选择了 PKUWC。
比赛的一个星期前,我做了一些模拟赛,也做了一些曾经的 PKU/THUWC/SC 的题目。对我来说这个比赛涉及的知识点很多很难,许多都是我在之前的训练中从未涉及到的。因此参加 PKUWC 其实我抱有的是一种挑战的态度。
PKUWC 的游记:https://www.luogu.com.cn/blog/ix-35/pkuwc-2019-you-ji 。总之,我第一天打得很烂,但是凭借第二天的 AK 翻盘,这似乎也奠定了我此后参加 OI 比赛的得分情况的基调。值得感叹的是,生涯中第一次也是最后一次做到九条可怜题,没想到是在这里,可惜的是讲题解的只有 SkyDec,没能见到九老师一面。在面试环节中,我在名单上看到了许多曾听说过的 OIer 的名字,记得有 Sooke 和 srz,不过可能更多的人去 THUWC 了吧。
PKUWC 时有一件“小事”,某次走在从酒店到 PKU 的路上时,我刷手机,看到一条新闻:武汉发现不明原因肺炎。当时谁都想不到,在接下来的三年中我们的生活会发生怎样翻天覆地的变化。
WC 2020 取消了,它最终从冬令营变成了夏令营。
初三下学期的前半个学期也都是线上上课,这给我提供了很多学 OI 的机会。
且慢!还没到初三下学期,我们先把时间移回到跨年之际。就在 2019 年 12 月 31 日,Sai 给我发私信,说准备找人一起出公开赛。
于是,MdOI 诞生了。最初的 MdOI 成员除了我和 Sai 以外,还有 yummy,installb 和 Karry5307 等。团队的名字由 installb 提供,来自于几何冲刺中的一个关卡 Melodic Travel,只不过之后 Md 的含义被做了引申,以至于变成了妈刀,那就是另一个故事了。
我们在 2 月很快策划了第一次比赛,在第一次比赛开始的前后,又有许多人陆续加入团队,包括 Kubic,还有高我一届的来自江苏的 s_r_f 与来自湖北的 EternalAlexander 等。当时 Coordinate 我们这场比赛的是 xht37,与 EA 一样来自湖北。xht 发现了我原来出的 C 是一个吉老师出过的原题(一个与字典树有关的题,后来被我放在其他地方出了),这是我第一次出字符串题撞原题(当然下面还有第二次)。随后我又补了个 D,是我很久以前的一个 idea,最后 xht 似乎觉得我出的 D 和 E 两道题还是不错的。
值得一提的是,此时 lxl 也在我们团队,他看了看我的 E 题说有一个边分治做法,爆了我原本的根号标算。
自从有 MdOI 以来,我可以水的群又多了一个。参加 PKUWC 的经历和参与 MdOI 的经历,让我看到了许多省外的,社区里的高水平选手的身影。有了更多人的参与,在 4 月,我们的第二场比赛很快造完了,并且成功出成了一场洛谷月赛(当时的月赛,意义和含金量都和现在有所不同)。这次我只出了一道 C 题,是一个我很早就有的 idea 的改编,比较简单的图论题。E 题由 Karry 贡献,而 D 题和 F 题都出自 EA 之手。他的 F 题是一个分块+后缀树的题,实在是神题,即使在一两年后的联测中仍见到有人搬这道题,而且无人会做。
F 题的题目背景来自 Celeste,这是我为写这篇文章翻题面时而重新想到的,此时我正在攻克 B 面的路上。
那段时间我还参加了不少的洛谷比赛,当时经常出现在排行榜上的名字有:Itst,小粉兔,jiangly,猪脑子,qazswedx,苍白王子(注:EA 小号)。
说完了网络社区上的故事,再来说说现实。
寒假期间,金老师安排了几次模拟赛和讲课,不过是线上的。在这里我认识了同样初三的日后的同学:wyj,yyc,以及原本就认识的 gyr,lsy,zx 等。模拟赛的出题人和讲课者都是之前的集训队,有 Yazid,还有在之前 CTS 中获得第五的 yjq。我印象最深的是 yjq 的讲课,他讲了动态规划和数据结构,帮助我了解了极大量的 trick,可以说受益匪浅。感觉比我们更早的选手往往对 DP 之类的知识点有更多的独到理解,在最近的观察中我也发现这一点。
从寒假开始,我们开始了多校联测和讲课。最初的 WC 模拟赛应该是在某个学校的 OJ 上进行的(忘了是 NFLSOJ 还是 FlowerOJ)。一开始我不适应联测的风格,几场 WC 和省选模拟赛我几乎没有几道会做的题。不过我还是挺喜欢做这些很有挑战性的题。多校的讲课则是由各个学校的高水平选手担任讲者,有很多是讲题,不过还有一些是讲具体知识点。我仍记得的是:EtaoinWu 讲了字符串,讲了一些 Lyndon 分解,Lyndon 树之类的东西,属于我的 Lyndon 二次启蒙;yjz 讲了一些用求导算多项式的 trick(好像就讲了求导算幂),以及万能欧几里得。
那段时间好像也有过校内的讲题。zjc 和 zbw 给我们讲了很多 2020 年集训队作业题。总之,从这初三下半学期开始,我和同学们的 OI 训练大致也来到了和那些强省选手们一样的频道上。
同时在圆桌班的学习也没有停下。寒假里,提高组班也开始讲 FFT,就在这段时间,来了一位新同学,那就是 JohnVictor。当时对 JV 的印象只有数学很好,对于 FFT 的理论基础什么的都学得很快。
随后的日子里,圆桌班上值得一提的事大概有两个:
一是叉姐又来给我们讲课,不过这次是线上的。这次叉姐讲的内容比较科技,第一次讲了 Lyndon 理论,还记得我上面说 EtaoinWu 的讲课对我来说是 Lyndon 的二次启蒙,那就是因为第一次是在叉姐这学的;后面又讲了拟阵交,学会了一些很厉害的理论,但是没写过代码;之后的几次课讲了一些代数问题,尽管我没听懂太多,但是内容还是十分劲爆:包括一车群论题(就是那些把一个群拆成若干个操作让你倒着看出来是啥群的,我之前觉得这么出题挺没素质的),还有一些奇奇怪怪的技巧(记得有什么
二是我们进行了一系列的论文研究,研究的范围大概就是 16~18 年的论文。集训队论文是 OI 选手产出的精华,通过学习这些论文我学到了很多 trick,比如从 A+B Problem 中了解到很多图计数方法;从 被操纵的线段树 中学到了线段树区间定位的许多性质。更多的论文本身就在讲述很多做题方法,不可不仔细阅读。
又是一年过去,来到了 2020 年的暑假前夕,6 月 20~21 日,联合省选。省选季是个悲伤的季节,不过当时我还意识不到这一点。我的省选游记:https://www.luogu.com.cn/blog/ix-35/ccf-2020-xing-xuan-you-ji 。由于不打 AtCoder,我丢掉了 D2T2 的 90 分,最终总分只有 390,最后却成功进入了省队。与同在 E 队的还有 wyj,gyr,以及低一届的大名鼎鼎的 glx。除了 EFZ 铁打地占满省队名额外,圆桌班的 jtl,imalyd 和 lxh 都进入了 B 队。与我同在 MdOI 的 installb 凭借省选的精彩表现进入了 A 队。
然后就是中考,由于之前自招已经成功上岸,我只要考一个有手就行的成绩就能进 EFZ。最终我的中考发挥不算好但也不是很差,601.5,恰好比 EFZ 在我们区的裸考分数线 601 高了 0.5 分,真是有趣。
暑假开始,暑假集训也开始了,不过仍是线上的。我开始认真地参与每一场 NOI 联测。几乎补了所有的题目。2020 年 7 月做的那些联测可以说是我的做题记录中最宝贵的财富。出题人是各个学校上一世代的集训队员们,这样的“古代模拟赛”自从 NOI 2020 后就再也没有了。新一代的出题人们出着仿佛带有现代和赛博气息的题目,找不回曾经的那种感觉了。当然这只是我自己的一个看法。
记得当时有一道很难的组合题(好像和几何图形有关),我看不懂题解。金老师让我联系出题人,然后我就加了某搬题大象的 QQ(当时不认识大象,不过当时好像有场比赛题目名字叫肥修 赛 大象),仔细地询问着题解是咋做的,在一番 struggle 之后,终于彻底搞懂了这道题的做法。于是我兴奋地写了个题解,扔到了我们群里。还记得名声显著的网格图哈密顿路,好像也是在这时被我做到的(我记得就是这题,如果记错了请告诉我)。
在这些模拟赛中我学到的东西太多,除了上面所说的,还有 min25 筛,倍增并查集,正交补线性基,阶梯网格图路径计数的分治 NTT,线性规划对偶等等算法和技术,都是令我印象深刻的。
终于时间来到八月,APIO 和 NOI 都即将进行。
此前的 WC 我并没有参加,那是因为 WC 正好和 EFZ 的分班考时间重合了。最终通过分班考我来到了理科最强的 9 班,wyj,gyr,yyc 和我同班,而 zx 和 lsy 在 8 班。
APIO 2020 是我参加的第一场 IOI 赛制的正式比赛。比赛体验还算不错,前两题都是相当简单的数据结构题,不过第三题我只获得了 47 分,最终以 247 分获得了金牌。
紧接着就是 NOI 2020,虽然我是初中选手,但这是对我来说最重要的一场比赛之一。我写了游记:https://www.luogu.com.cn/blog/ix-35/noi-2020-fan-pan-ji ,但它不完善,我还有更多想要说的。
脑海对 NOI 2020 的印象现在只剩下了一些很抽象的东西,所以接下来的一切都不能保证正确性:还记得好像有座挺高的教学楼,旁边是宿舍,至少二层的地方有个自习室,记忆里我将红色与那里关联(要是和 NOI 2021 搞混了,可以联系我)。我在那里见到了 EA,还(有些尴尬地)见到 EI,还记得看到 djq 玩 pvz。我和高一学长 xch 以及紫竹的高一学长 zph 住一间,对门应该就是 wyj,yyc,glx。考前几天,我到 glx 那边和他一起打几何冲刺,但 installb 应该不在。宿舍里令人印象深刻的是厕所与淋浴一体。食堂里是自助餐,我似乎还是第一次像这样吃自助餐,具体吃的什么有些淡忘,只记得很喜欢湖南小炒肉。考场旁有一块巨大的牌子写着选手须知,考场外是一片方形的开阔空间,好像有几棵树,再往里是一条通向宿舍或食堂的长廊,附近应该有个小卖部,好像还有个室内球场,曾经看到一些教练在里面打某种球。
第一次走进考场时我被震撼了:巨大的体育馆内摆着数百台计算机,头顶还有电子屏幕提示着当前的时间。
Day 1 我的表现比较一般,由于尝试 T2 时只想用容斥做,没有想到更简单的直接树形 DP 方法,所以只拿到 40 分。T3 是一个很难的数据结构题,我发觉它不弱于区间逆序对,便放弃正解的思考,最终获得 52 分。在讲题时我才知道,T3 的出题人就是 lxl,这下终于把 lxl 和长发男子的形象对应上了。
Day 2 的前一段时间内我一题都不会,但后来我刚出了 T1,当时应该没有想到 bitset 优化;接下来我尝试去做 T3——因为我在之前的论文研究中学习了弦图。显然我不可能做出这道至今都无人通过的难题,但即便如此我还是获得了 30 分的暴力分,比绝大多数人都多了。在最后的半个小时里,我靠 T2 完成绝杀,最终在 Day 2 取得了至少 200 的高分。
走出考场时像教练汇报自己的估分,教练觉得我似乎搞错了什么,因为我的估分甚至高于了所有到场的上海选手。我有些激动,祈祷自己不要挂分。吃完饭后按时来到考场外等待着查分。然而这一等就是几个小时,考场外的人越来越多,两点过了,两点半也过了,可是考场大门还是没开。我们得知命题组需要修锅。lxl 在考场内将状况评价为丧尸围城。
我在考场外的方形庭院,一边水群一边来回踱步。我与许多群友面了基,印象里包括 WYXkk,小粉兔,铃。我又在 UOJ 群中看到毛爷爷发的一些神秘音频,比如“退役的你小调版”。我还记得在略显嘈杂的环境中将手机放在耳朵旁边和同学一起边听边狂笑的情景。
一会儿人群变得稀疏,许多人回到宿舍等通知了,我买了瓶水,和其他一些人到旁边的球场去坐了坐,也就是在此时,glx 把我拉进了 EI 队长粉丝裙,从此 EI 群一水就是两年半。
终于放人入场了,我并没有大的挂分,Day 2 225,应该算是极好的成绩了。加上笔试与 Day 1 总共是 502,成功拿到了第一次的 NOI 金牌,以及初中生选手的最高分。zbw 学长成功进队,初中选手大都获得了银牌或铜牌,然而 jtl 却恰好被卡在铜牌第一名。
回顾 NOI 2020,对我来说它比 21 更加梦幻,在记忆中仿佛涂有一层滤镜。但无论如何,E 类金牌没有实际作用,接下来的两年 OI 之路才是真正的决胜局。怀揣着必胜的决心,我从 NOI 回到平凡的日常,踏进了高中的旅途。
2021 赛季
由于参加 NOI 的原因,8 月的入学教育我并没有参加,直到开学才见到同学。高中的同学许多都是各科竞赛大佬,上课的第一天许多座位就是空的,那是因为物竞组已经开始停课了。关于高中校内故事,其实我可以说的远不及初中那么多,一方面是因为本身我的风格和其他人的风格导致班里没有太多很熟的人;另一方面是因为我正经的高中 whk 学习只有一年半左右,而且在班级内也没什么活,只是个修电脑的。
圆桌班的题目基本都是一些杂题,我没学啥新知识点,但是做了不少 AGC 题之类的。
我每周在上 whk 之余,有两到三个半天的时间去机房。最初的一个月我按照原本的计划住校,但随即我就发现对于我来说,要学 OI 是注定不可能住校的。于是从 10 月开始我改成走读,学习 OI 的时间变成了学校里在机房的时间加上每天晚上在家的时间。
那半年,最重要的习题来源是集训队作业。早期我做了大概七八十道题的样子,后来在 DDL 之前(大概 12 月~1 月)又开始做剩下的题,到最后应该是正好做了 135 题。我早期的做题方式就是对着一道题硬想,那段时间我经常会每天打印几道题的简要题意然后带到学校里想,我觉得这是一种挺有效的训练方式。再说说题目质量,集训队作业题是若干场 ACM 比赛里按 AC 人数最少筛选出来的 150 道题,尽管有一些很弱智的套路题,但是许多题目还是能够给人以启发的,此外还有一些非常难不是给人做的题目和非常有意思的题目(比如有个围棋题)。
做集训队作业的时候,感觉 Itst 是一个很恐怖的人。
联测还在继续,此时我们新高一也有了一些出题任务。我在某场 NOIP 联测中出了一道我认为很好的题目 Tom & Jerry 作为压轴,可惜没有人在此题上获得较高的分数。此后我又将它作为自选题放到了集训队作业 OJ 上。gyr,wyj,yyc 和学长 xch 应该也各有出题/搬题,由于我很难把大家出的题和时间对应上,就不一一举例了,只记得 Tom & Jerry 那场还有个题名字好像叫“樱初音的橡皮黑洞”。
CSP 和 NOIP 感觉没什么可说的,看游记吧:https://www.luogu.com.cn/blog/ix-35/csp-s2020-you-ji ,https://www.luogu.com.cn/blog/ix-35/noip-ctt-thupc-2020-post 。
“DLK 了,立刻就离开发射点” 和 “校园随笔” 之类的东西正是诞生于这一时期,这使人怀疑笔者当时的精神是否正常。
紧接着 NOIP 的是 CTT,由于游记只写了考试(甚至考试也没写完),这里就把别的东西补一补。这是我参加的唯一一次货真价实的北大集训。我们的酒店中关新园就在北大对面,只要经过一条横跨中关村北大街的天桥就能到北大东南门。我记得天桥叫”成府路西口南天桥“,能记这么清楚是因为根据这个可以说一句话同时包括东南西北。
房间分配是按照 NOI 排名的,而精英选手就接在集训队的后面,所以我的室友正好就是集训队最后一名的铃酱(因为集训队中有一位女选手丁老师)。铃和 namespace_std 很熟,每天晚上他们都在一起玩 MC。
考试部分其实没太多可说的,我只记得考场被划分成几个区域,电脑的摆布十分曲折,像个迷宫。不知道座位是怎么安排的,我有两天和 dengyaotriangle 坐一起,还有一天和 djq 坐一起。我 Day2 和 Day3 打得比较好,大概在总榜 20 名以内,但 Day1 和 Day4 比较垃圾,都在 60 名开外。Day4 是记忆比较深刻的,我坐戴老师旁边,三道数学题(上帝视角,一道是集合幂级数,一道是循环矩阵行列式,一道是模意义下几何形状有关的构造)对我来说就是三道送命题。最后我一题也没过,打了点暴力跑路了。而戴老师非常 ycwd,考完之后电脑上留着比赛刚开始时的全 0 分页面。
北大的食堂挺吸引我,在那里一边吃午饭一边就能看到上午考试的分数出来。而吃完午饭回到酒店稍微休整后就到了下午的讲题时间,所以应该每天至少要两进两出北大校园。当时北京正好下雪,走在学校里非常有感觉。
这次 CTT 对我来说的重点是狼人杀!第一次/再一次见到了许多网友和很久以前就听说过名字的集训队员,比如 Hazyknight,EI,戴老师和丁老师,邓老师,xtq,srf 等等。我忘了最初是被 namespace 和铃他们还是被 gyr 或者 srf 叫过去的了,总之在之后的几天里我每天都去杀。自此以后一段时间内狼人杀也成为了各种线下活动的保留项目,不过两年后被一些别的东西代替了......
接下来到了 WC 2021。在 WC 之前有几场 IOI 赛制的联测,几位集训队员 zx2003,Itst 等的表现让我印象深刻。我也出了其中一场的第一题,虽然本来就觉得这题很简单,但是还是被大家切题的速度震撼到了!
后来发现我出的那题是个 AtCoder 原题,然后很远的将来才知道 gyh 原来也出过这个原题,哈哈。
上海在 2021 赛季采用 NOIP+WC 的方式进行省队选拔,因此本次 WC 结束后正式省队的成员也会尘埃落定。WC 游记:https://www.luogu.com.cn/blog/ix-35/wc-2021-you-ji 。这场 WC 我打得并不满意,因为 T1 是个很简单的题但我没过。不过无论如何我最后以 208 分得到 Au。值得一提的是,来自 FDFZ 的 FunnyCreatress 以 210 分获得了上海第一,他其实之前就在圆桌班上过课了,不过前面一直没提。
尽管我 NOIP 和 WC 都是第二,都比第一少了两分,但是总分还是第一。gyr 无悬念地进了 A 队,wyj 和 zx 进了 B 队,Kubic 进了 E 队。而 xiaoyaowudi 以一名之差与 E 队失之交臂,lsy 是队线以下的分数最高的高中选手。
对于我们来说的省选季已经过去,接下来又是平凡的日常训练,没有什么可写的。
忘了是在什么时候,学校组织了奖励名额的选拔,我记得考的题好像就是之前提过的那场包含网格图哈密顿路的 NOI 联测(参加选拔的人可能都没做过)。最后 lsy 和 xch 获得奖励名额。
接下来快进到 4 月。其他省的省选开始了,而我们则是 vp。我在 vp 中 AK 了 Day1,却在 Day2 变得弱智,没做出来很简单的数据结构 A 题,说明我数据结构菜大概是从当时就开始了。
与此同时,我开始了一个大工(鸽)程——NOI 一轮复习。我首先从当时正在研究的网络流开始,接下来还写了字符串,计数,数据结构。但是由于后来时间仓促,很多内容还没有完工,很多领域也还没写到。事实上,本篇退役记完稿之后(可能还得休息会),我就准备重修一系列类似的文章,不过这可能需要相当长的时间完成。
接下来两个月的日子就全部在 whk,写博客,做杂题中度过了,无须多言。
7 月,又到了 NOI 联测的时节。不过这一次做这种 NOI 难度的模拟赛对我来说已经得心应手。我经常能在多校的选手中获得比较高的名次(可能也是联测生涯巅峰了)。
顺便可以总结一下我在这个赛季出的题目。我最为满意的是一道后缀自动机结点计数。一般情况的 SAM 结点期望计数好像是用枚举 border 集合之类的方法做的,但我的那题加上了一些条件,于是需要用一些我自编的方法解决,赛时 Isonan 通过了这道题。我还出了一些比较简单的题,其中一道就是上面说的 WC 模拟赛中的题,还有一道 NOI 前夕出的有关线段树区间定位的交互题,出题思路正是我当时为了写一轮复习数据结构篇而研究的线段树结构。更早的时候我还在 NOIP 模拟赛中出了一些很早就有的 idea,也基本都不难。
不过我的手上早就积累了更多的题目,因此我投了一场洛谷月赛。事实上这场月赛早在 2021 年初就投给小粉兔了,但是两方面一直鸽到 NOI 前才出。故事是这样的:我一开始投了完整一套题,但小粉兔说 E 题比较无聊,所以把它毙了,于是我将原来的 F 题作为 E 题,这样就差了一个 F 题。恰好 zjc 当时也想出洛谷月赛,并且他只有一题想投月赛,于是就正好和我的场拼起来了。
最终月赛在 NOI 前大约两周的时间举行了。我的 E 题是一道自认为相当有趣的计数题,不过在比赛结束后,EI 直接给了个暴力推导的做法,不用观察我觉得很巧妙的一个性质,当然这也无伤大雅。zjc 的 F 题是一道神题,不过由于难度太高,一年内都几乎没有人来补题。直到一年后,我在多校讲课中讲解了这道题目,才吸引了包括 LJC00118 在内的一些人来做。后来我写了篇题解,希望能够让更多人发现这道神题。
UNR 是 UOJ 的传统项目了,每年的 NOI 前会提供一次给全国选手练手的机会。然而我在 UNR 中打出了生涯最差的成绩,两天的 T1 加起来挂了 185 分,导致我最后拿了一块胸牌。当时的心理还是比较矛盾的,我觉得三言两语说不清楚,总之在 UNR 过后的一个晚上,我绕着小区走路,想了很多东西,之后就什么也不想了。
NOI 2021 到来了。奇怪的是,我现在已经回忆不起 NOI 2021 的太多细节,远不像 20 年那样连什么时候做了什么都记得明白,但还是可以大致一写。游记在此,虽然很简陋:https://www.luogu.com.cn/blog/ix-35/noi-2021-you-ji-ji-ji-xiang-guan 。
正好当时的上个月在看龙王的工作,就把银子放在了游记的开头。如果是 CTS 2023 的话,就该放一张凉门了!
这次我和 lxh 与 FunnyCreatress 住一间。lxh 似乎在 NOI 前去省外参加集训了,有段时间没见。同层的还有山东的选手,我只对其中的 qazswedx 有印象,因为他在之前的几场比赛里表现特别突出,而且在大约 5 月的时候还来找我讨论有关 Tom & Jerry 的问题。
我们这里的氛围还算轻松,FunnyCreatress 每天都在打泳池无尽,虽然经常打到二三十波的时候就会因为各种原因寄掉,就算不寄电脑也会卡成个位数帧。我则有时会玩 ize(祖传 ize)。zx 和 lxh(也许是,也许记错了)则更有意思,他们晚上在房间里看特摄剧,假面骑士之类的。不过以上只是我们这边以高一选手为主的情况,事实上许多我熟悉的高二选手比如 lk,srf,EA,已经来到了最后一战。
Day1 之前的一天,我约 EA 到我房间,打以撒竞速。第一次跟人线下打竞速的感觉还是很有意思。当天晚上,似乎是有一位湖北的选手过生日,整个省队为他准备了一个蛋糕,看得我觉得很温暖。
NOI 正赶上台风烟花登陆浙江,余姚城中风雨飘摇。尽管这样的天气对活动来说多有不便,但我也觉得这样的环境背景也挺有味道——我一向喜欢雨。Day1 的考试因为台风的原因延迟了一个多小时,我与一些同学这时就在考场外闲逛。
Day1 的题目比较令人震撼,T2 是一个 LGV 板子,我开赛后半个多小时就写完了代码;T1 也只是一个略恶心的数据结构;T3 最初我想到了 64 分的简单暴力,等到发现前两题都很简单后就来冲正解,没想到 T3 也很简单。最后在比赛结束前 1 小时左右就完成了 AK。
下午我没有去食堂,只吃了考场上发的面包,因为我很激动。焦急地等待一个小时之后开始查分,我的确 AK 了。之后与几位选手交流,发现 srf 和 lk 都 AK 了,总共大概有 30 个左右的人 AK。遗憾的是,上海省队除我以外无人 AK,并且 EA 的 Day1 似乎考得很差。
Day2 准时进行,在进入考场前我见到了 EA,想说几句安慰的话,但我却发现我不太会说话。Day2 还算是比较正常的一场 NOI 比赛,只是略简单,我写了前两道题,却没有时间再思考第三道,最后获得了 196 分,两天和笔试和 A 队加起来 601。
查完分之后我在想什么,现在已经记不清了。但总之我刚开始还沉浸在进队的喜悦中,而随即就听到了太多遗憾。EA 由于 Day1 的失误未能进队,这也意味着他退役了。gyr 和 wyj 的分数偏低,最后还是没到队线(gyr 因为身体原因影响了发挥),与 imalyd,lxh 一起排在了银牌前列。FunnyCreatress 更为可惜,Cu rk2,就像去年的 jtl。
晚上教练请吃 KFC,我本想说点什么,但还是不太会说话。被问及接下来的打算,我只能说我也不知道,从后来的结果来看,我的回答非常睿智——现实是魔幻的,OI 是随机的,命运是不存在的,国家队是量子的,我确实什么都不能知道。
2022 赛季
来到 2022 赛季,画风变得和之前完全不同了,也许你从标题图上就能看出来。
从 2020 的崭露头角到 2021 的平稳过渡,我想我已经对 OI 有了很多新的认识,不过最终的了断发生在 2022 赛季。我曾经很在意各种实力的外在表现,比如考试的排名,比如 CF 的 rating。但从某一天起,我变得不在乎很多事情了。读者也许不能理解,但至少我至今都认为 2022 年初的思考为我选择了一条说不上正确,然而却挺适合我的道路。
NOI 2021 之后就是集训队作业。那一年新的集训队教练 yyl 上任,并且重新组织了互测。由于 NOI 之前我将自己出的题目都差不多用光了,所以当时没什么好的题,于是就扔了一个临时出的数据结构题上去,题目名称延续去年的风格,叫 Speike & Tom。在写 std 的时候我才意识到这题是多么地重量级!最终这道题目赛时只有 O(1) 个人通过,Isonan 好像花了整场写这题于是获得了 100 分,于是本题众望所归地收获了很多差评。
说到底,参加互测和 CTT,CTS 的最终目的是争国家队,因为上一年我没有完整参与以上过程(没去 CTS),所以当时我对国家队的认识很不成熟。看到互测中 djq,hehezhou,xtq,zjk 频频霸榜,还有同届的 LJC00118,dengyaotriangle,127 等同届高水平选手也时常取得惊人的成绩,我不禁开始思考我参加互测的意义。不过我的性格不允许我不打互测,我做不到放手,于是就持续着一场场身心双重的 struggle。如果你回到 2021 年末,问我在互测中有没有认真,我会回答不认真;再问我有没有摆烂,我会回答没摆烂。但这是因为我能做到的只是这样,别的可能性似乎都不属于我。
根据我的观察,很多 OIer 和我一样在进队之后都有一段时间的戒断反应。不过我在 2021 年已经体验过,因此 2022 年不再有太多的感觉。那段时间里,我竭力去找很多 OI 以外的事情来填充生活,我发现 whk 就是一剂良药。学习一段时间的 whk 后症状有所好转,我又开始尝试做一些 NOI 前为了约束自己而没有做的很多题目和没有看的很多技术。
对我来说的另一个好消息是,高一的学弟来了。机房变得活跃了很多,Kubic,xiaoyaowudi 和 glx 会讨论许多题目,而我和 Kubic 是最熟的,也交流了最多题目。那时我的主要习题来源是 gym 里的一些 opencup,还有一些 OJ 的线上比赛,我的博客中记载了数次做题的记录。
赛季初,我 AK 了 CSP,但没 AK NOIP,不过由于那时我已经有了一些思考,对于这个级别的比赛基本都看开了,所以游记也没写,这里也不想写。
接下来是 CTT 2021。这是一次孤独的旅程——由于疫情原因,上海的其他选手都没能到场,只有我提前两周去了深圳,才得以参加集训。提前的那两周里,我和家长住在一起,基本上每天都在学一些比如高等代数的东西。两周后,我发现我也并不是那么孤独——镇海的 daklqw,xpp 和 skc 也和我一起在隔离考场。小小的酒店会议室里放着四台电脑,看起来有些荒诞(我也不知为什么会这样想)。不过我们还是可以和其他人在非考试时间一起活动。集训期间,我们玩了很多把狼人杀,甚至晚宴结束后还围着圆桌坐了一圈开杀。由于自从家长走后我就一个人住一间房,所以大家经常来我房间玩。
CTT 的题目我已经记不起来几道,可能是因为当时还是有点神经质。只记得有两个很难的题,一个是扑克比大小,还有一个是 zbw 的万欧题,之所以记得是因为后来尝试重新研究过。还有一些板子题也还记得,比如有个树上连通块的题,用点数-边数之类的技巧搞搞就出来,还有一个求阶的板子题,也许是 Itst 出的。
甚至我连 CTT 考得怎么样都忘了,考完后好像排在十几名。我只记得最后一天大家花天酒地一直玩到半夜一两点,最终各自散去,我的感觉就像我在 CTS 2023 结束后所发的:曲终人散去。但我很幸运,本以为的终末还没有来临,之后还有故事需要续写。
在 CTS 之前,我需要完成我的集训队论文,我选择了 Lyndon 理论这个曾经已经进行过许多学习的领域进行写作。在将已经掌握的 Significant Suffix 和 Runs 理论写完之后,额外学习了 Lyndon 串排名,并将它也写入了论文中。可惜的是,我至今也没有出出一道具有很鲜明的 Lyndon 特色的题,或者需要用 Lyndon 串排名的题。
2021 年 12 月到 2022 年 1 月,极度煎熬。我在训与不训的边缘来回徘徊,对自己实力的不自信和(性格层面的)不得不拼全力之间有一种矛盾。不过这个煎熬应该是值得的,不煎熬一下就想不明白一些事情。
WC 是孤独的 WC,开幕式上只有上海的选手,占据着偌大的礼堂中一片小小的区域。
CTS 倒还好,又和大家一起玩了很多天,只不过题目体验并不好,六道题五道 ynoi 对于现在的 OI 来说还是超前了一些。
我研究 CTS 大家的情况,在结束后的几天里我思考了很多。我从前不知道国家队是什么,只是一个看起来很厉害的头衔,还是可以保进茶园的入场券,或者是参加 IOI 拿金牌的重担,又或者是单纯的白月光?经过 CTS,我对此有了一些实感:首先我掰着手指头算,IOI 2023 的国家队似乎怎么数都数不到我;然后我权衡利弊,进个国家队真的配得上我需要为之付出的时间吗;最后我升华主题,我真的拥有足够的热情和毅力撑起国家队这个名号吗?我又想到进了国家队后要怎么办,也许是长达几个月的紧张训练,也许这和预科相冲突。我不愿继续想下去了,但就上面的这些足以让我做个了断。
如果是几个月后的我,这个思维过程也许更简单:我真的是/能成为“外星人”吗?
总之,在这之后,我不再把任何与相关成绩有关的事情看得很重了,你也可以说我后面一年多的心态就像一个旁观者,或者乐子人。
接下来的 2 月到 6 月,是一段消失的时光。下面记述的一些事应该只是一小部分,但当我尝试回忆我还做了些什么时,却啥也想不起来(但那段时间我真的过的很娱乐,也许也可以说比较糜烂)。
我想过写一篇退役记,也就是说这篇文章大家差点在去年就能看到。不过我还是不允许我在还有比赛没打的情况下就退役。
我自己不再有任何执念了,于是我全心全意为 EFZ OI 和高老师的课堂做出自己的一些贡献。在那一年内,我的工作包括组联测,收发联测题面和代码,把一些题目配到 OJ 上,安排好题选讲,组织每周末高老师安排的拓展题的讨论之类的。
我还从 21 年暑假就开始当洛谷管理员,审核了若干场月赛。
4 月,联合省选开始,但是当时的上海当然不可能举行这样的聚集活动。因此上海没有省选,直接根据 NOIP 选省队。由于那一年没有 1/3 限制,所以 EFZ 占到了省队的八分之七,而这同时也意味着 FunnyCreatress 退役了,我觉得他可以试试 C 类,但他后来没有这样选择。
我们 vp 了联合省选,由于很久没写代码了,我的手非常生,挂分情况相当惨烈,几乎赶上去年的 UNR。这给我敲响了一个警钟:如果不训练可能今年连金牌都拿不到了。不过由于一些忘记了的原因,我准备从六七月份再开始复健。在此之前的是其他一些省份的省选,比如 AH 和 LN,这两场的出题人是一些很熟悉的人们,EI 群的群友们。这两场省选我都做得不错。值得庆幸的是思维能力并没有在那段时间里丢掉,我还是能想出来一些看上去比较难的省选题。还有 ZJ 省选,它对我有一些额外的影响,那就是它的题出得太好了,好到吸引我重新去学 OI。
对了,还有一场比赛,就是奖励名额选拔比赛。虽然我已经进队了,但还是去参加了这场考试。题目好像是 hwy 出的,几道题好像都挺有意思的,不过第三题好像是神秘数论题。最后虽然我 T3 不太会,但是因为大家都挂分了,所以我莫名其妙来到第一。wyj 和 kys 顺利获得奖励名额,紫竹的 Seauy 也获得了奖励名额。
接下来就到八月了。
我仔细一琢磨,发现七月还是有些大事的,只不过和 OI 无关——我过了五门,还加了以撒竞速群。
开始了封闭式的线下集训,这让我重新有了从前那种学习 OI 的感觉。
从八月的第一天开始我就投入 100% 的精力了。一个首要的问题是做什么题,我最开始选择前段时间比较热门但是我从来没打过的 Public Judge。于是我一天思考加补完了 PR 1 和 PR 2 的许多题。
然后通过与其他人的讨论,我也做了很多其他人推荐的题。Kubic 和 xiaoyaowudi 不断在找 QOJ 上的场做,于是我也加入。最开始的几天还做了一些别的题,比如 CEOI 和 GCJ 等等。我当时写了一些博客,不过这种形式没有延续下去,因为后来做题强度比较高,而且题目也不全都是公开的:https://www.luogu.com.cn/blog/ix-35/post-82-post ,https://www.luogu.com.cn/blog/ix-35/xxii-open-cup-named-after-ev-pankratiev-grand-prix-of-poland。
当时还有杭电的比赛,我们所有人总共有三个账号。记得 gyr,kyj,kys 基本上每场都现场做题,而我和 Kubic 很摸,一般都是先看题,有意思地再帮着写写,或者就直接赛后再做。有一次我开写一道计算几何题,但是与点到凸包切线大战数个小时仍然未能调出;还记得另一次有一道大模拟题(好像是飞行棋),gyr 独自一人在机房旁边的一个小房间写了好几个小时,结果赛后出题人发现 std 有问题。每天下午不管有没有杭电,大家基本都会在不固定的时间集体买些饮料,机房生活很充实也很惬意。
就在集训的第一天,有人在机房后的桌子上发现了一个垒球,于是接下来一个月内(直到 NOI 结束),垒球成了机房的专用道具,甚至在后来教练又多买了好几个。大家喜欢吃完晚饭后在楼里扔垒球,有人可以从一楼扔到二楼,但却鲜少能够从一楼扔到三楼。垒球严格来说是个没什么底蕴的魔怔梗,但是可能是我当时对待 OI 的态度已经和一年前完全不同,乐子人的心态感染了大家,让大家也一起玩梗。与这类似的还有“半在线编程”,就是把 ide 调成一些阴间配色,使得只能看到当前写的一行。虽然游记里已经写了,但我还是情不自禁想放张图上来。
魔怔不止于机房内部,某一次吃完晚饭在机房时我在看小粉兔直播做一道什么题,于是带动大家也纷纷打开 b 站收看,小粉兔的直播效果让大家加了粉兔直播通知群。彼时粉兔直播通知群有着与我曾经接触过的不同的一种 OI 环境(主要是人不一样),这让机房的魔怔发扬光大,垒球被更多人知道。
再说最后一个关于魔怔的话题。外星人其实也是那段时间出来的。起因是 glx 和我谈及几何冲刺中的“外星人”这个特色用语,然后在某天晚上 glx 找到了一张逆天表情,就是下一部分的标题图。当时我只是单纯觉得好玩,就到处发,但是后来对此有了一些新的认识。原来我有一个经典的表述是“恐怖”,后来逐渐就用外星人代替了这一表述,大家现在看到我说的外星人除了指我自己之外基本都是这个意思。
UNR 又至。不过这次我已经不是选手,而是工作组的成员之一——其实我并没做什么工作,只不过当时已经在当 UOJ 的“见习管理”。虽然我不能交题,但是在赛时还是和大家同台竞技,只不过我只负责口胡。我比较乐子人,很少有事情能影响我心态,不过 UNR D1T2 算是对我来说的一个打击了。这题过了很多人,我却完全没思路,一直到 NOI 结束,我才知道这题的算法有个名字叫 DP 套 DP。在 UNR 上,许多之前不太熟的 id 出现在排行榜首——不太熟应该只是因为我前段时间远离 OI 的同时顺便远离了 OI 社区——比如 gyh20,feecle6418,dottle。
IOI 开始了。我 vp 了两天的比赛,并且在 QOJ 上提交 AK。IOI 这几道题应该是我做得最认真的题了,晚上离开机房回到宿舍还在想题(我没有按照整块的比赛时间 vp),熄灯之后,我直到把三题全都想出来才睡觉,第二天一大早就吃完早饭赶到机房,花一两个小时把三道题都给写了。
做题记录中还包含一场洛谷月赛。我开小号去打了那一场,赛时我直接从 E 开始做,虽然最后卡了半天常数过了,但是不做前面的题的情况下论分数肯定还是不高。Kubic 和 glx 则一直在想 D 题,那是一道题面很长的题,而且看起来非常神秘,所以我赛时根本没看,后来一看发现是一道还挺有意思的思维题,在晚上把它想出来了。这说明当时我实力应该还挺强的。
八月的前几天正好是暑假的以撒比赛举行的日子,我晚上没事的时候就自己坐在宿舍里看直播看到半夜,这件事应该没太多人知道。后来,每天晚上没事的时候我就听自己的歌单,有许多歌我印象深刻,有的循环播放了一整天,在最近一周听歌排行中会显示一个三位数的听歌次数。除此之外,我还写一些魔怔小短文,比如“关于垒球的 xxx 个事实”,不过直到现在还没发布,以后估计也不会发布了。
于是,(戏剧性地)我以最好的状态走到了 NOI 2022。
我的 NOI 2022 游记非常魔怔,所以我把它归到八月集训这一节,而不是下一节:https://www.luogu.com.cn/blog/ix-35/noi-2022-you-ji 。
2022 年 8 月 20 日,NOI 2022 开始!
过去一年,送走了一批网友,迎来了一些新的网友,于是来到 NOI 的第一件事就是见见网友。在签到处和自己的房间,我见到了 dottle,feecle,127,以及 hez 一行人。然后我去了 hez 那边的房间,玩了一下午的狼人杀,最后甚至蹭 wyl 的电脑打了把五门。
我们的楼层有北京的选手,他们玩的东西很多。有的玩三国杀,有的玩糖豆人,甚至在休息日那一天我看到有人在玩几何冲刺,忙把 glx 叫出来一起看。
接下来的几天我基本上就没写几道题了,几乎一直都在 hez 那边,不是玩狼人杀就是看他们打空洞 bingo 之类的。毕竟对于我来说这些活动是 NOI 比较核心的内容。
在 NOI,我又见到了 yyc。说到这里不得不表扬 NOI 2022 的策划,文艺晚会是在 OI 赛事中一个缺席已久的环节。那天晚上,xtq 深情演唱的 十年 和多头的激情演讲让我印象深刻。另一个别出心裁的设计是每人推荐一首歌组成 NOI 歌单,这最初是金老师提出的,所以我们学校的人很早就知道这个事,我最终贡献了几周前循环播放过的一首 狂花水月。
NOI 期间还发生了许多有趣的事,比如粉兔群被炸了,当时正好是 Day1 前夜,这个消息也许让大家都很乐,少了一些紧张感(至少对我来说是这样)。
Day1 我打得很下饭,大战 T2 正解失败加上 T1 挂分使得我总分只有 110。不过我不以为意,当时确实想过万一进不了队怎么办,不过思考的结果是不会怎么样。Kubic 过了 T2,几乎拿到了全场最高分,这让我很欣慰。而与我一间的 wyj 和 glx 虽然分数比我高一些,但仍有不小的压力。晚上,我们在操场上走圈,我尝试再用乐子人感染一下大家,并立了个 flag 说明天必翻盘。
Day2 我打得很稳,最后果然翻盘了。EFZ OI 也收获了有史以来的最好成绩,6 个集训队。当然遗憾也还是有的,一是:如果我能过 D1T2 的话应该就有第三名或者第二名,Day1 再打好一点的话就能捧杯了;二是 Kubic 居然没过 D2T2,Day1 打那么好最后只拿了个第四。
不过后来仔细想想,第一个遗憾也不是遗憾。NOI 2020 的第一在之后除了荣誉之外也给我带来了一些负担和烦恼。如果 22 年真的拿了个第三第二第一的话,说不定反倒不如现在的发展,至少心理上是这样。
现实的魔幻又一次震撼到了我——在 Day2 离开考场之后,我们被通知紧急撤离。就在不到半天之后,我和室友拿着行李离开学校,此刻的校园全无早上热闹的样子,只剩下一片狼藉,以及写着 Whenever and wherever, NOI brings us together 的旗帜迎风飘扬。原本约 Kubic 和 zght 打 80 分的计划也泡汤了。我带着惆怅离别了 NOI 2022。
2022 季后赛,结局
NOI 结束后,我回归了与之前的 3 到 6 月一样的悠闲生活。我每周只去两天机房,而且去的时候也经常带着一本物理书,学习一些高考到自招的物理知识(上海高考物理非常简单,所以可能要补一些全国卷的东西)。
于此同时我在上预科,我只上了三门总共 10 学分的课,所以相当轻松。有时我会在机房里写微积分作业,当然在机房中更多时候还是学 OI,不过很娱乐:我开了个小号开始从头板刷 uoj,不过还没做几十道题就鸽了;我还做了些提交答案题,有一道还是和 Kubic 一起做的。
今年的集训队作业还是互测,我选了一道刚刚出的很简单的题作为我的互测题。我的做法有一定技巧性,代码很简单;而在赛时我发现有许多人写了较为复杂但无脑的做法。作为选手,我前期每场互测基本上打到 60 分就下班,于是每次只需要花费一小时左右。后来有几次互测在机房打。在机房时我也不方便下班,所以就认真打了几场。由于我发现真想打前 20 拿分其实很容易,所以在最后几场我稍微规划了一下,有几场下班,还有几场加班,最后正好凑到了 5.0 的满分。
由于去年已经 AK 过 CSP 了,所以这一次我没报 CSP,直接参加的 NOIP。NOIP 2022 题目非常简单,我在场上已经开香槟了,结果出来一想才发现构造题没输出步数。此外似乎另一题也有写挂的地方,但这已经不重要了——总之就是没 AK。
CTT 2022 是长夜中的最后一场比赛,我们最后一次提前一周赶到现场,每天做核酸,封闭式管理。这次的房间安排是以省份为第一关键字的,所以我和 Kubic 正好一间。
CTT 前的两天,我正好在重新捡起空洞骑士打神居。CTT 期间我正在挑战四锁五门,我每天都打一局,Kubic 经常在旁边看,最终在比赛开始前的几天过了。而 Kubic 则经常在打 generals,我经常围观。除了打游戏之外我们还会做一点题,不过大部分题都是 Kubic 找的,我跟他一起做做。另外我们还要负责 12 月即将进行的 SHCSP 的命题工作,所以在 CTT 期间我们也造/出了一些题,其中的一个 idea 就是我看 Kubic 打 generals 而想出来的。
比赛前的两天,在一个编号为 1312 的神秘房间组织了神秘活动,第一天 wyj 去了,第二天我也去了。大家喜欢唱歌和打斗地主,还有人搓玻璃,我瞬间就有种回到 CTT 2020 的感觉,况且打牌这种事情相比狼人杀来说更有比较直接的快乐,于是之后我就天天来了。
比赛前一天突然通知大家要换房间,集训队和精英住一间。于是我的室友换成了雅礼的 juju527。
CTT 的过程没什么好说的,除了第一天不太适应之外,后面几天我基本上都在前十名,最终总排名是第七。不过现在我已经不在乎这种事情,顶多就是关心一下最后一天有没有打败 rsy。每天中午打完比赛后我们就在赛场外吃盒饭,吃完就去 1312。四点开始讲题,1312 里 rsy 或是 xtq 的电脑会打开腾讯会议,等讲到大家都关心的题时许多人就围拢上来,否则就四散打牌。
CTT 期间我加了 dottle 的鲜花通知群,后来主要水的就是这个群。
我的评价是:打 CTT 就像参加同学聚会一样。
自从 CTT 结束后我就很期待 CTS,因为据说它在成都的一个高档酒店举行。不过在这期间的 12 月对我来说却很不好过。一方面是新冠的感染,另一方面是多个 ddl 的迫近,这使得我压力很大。我赶完了论文,做完了元旦讲课的 ppt,准备完了学考,于是终于轻松下来。玩了一个星期之后,就到了 CTS。
从各方面都可以看出,CTS 确实规格很高。我和 wyj 一间,就住在“会务组办公室”的旁边。神秘活动的新据点是 1205。在 CTS 期间我们尝试了许多不同的牌类,比如 UNO,红心大战以及 80 分。冬令营讲课第一天,邓老师来了成都,他在群里约饭,最后 Itst,xtq,wyj 和我去了。能够在本地吃上一次地道川菜,也算是不虚此行。
CTS Day1 中,我半个小时左右就过了 T1,而 T2 是个通信题,T3 是 EI 数数题。我一向比较喜欢也比较擅长做交互和通信这种类型的题,所以接下来的时间主要在做 T2。我认为这题我一定能过,可惜最后没过,拿了 60+ 的分数,T3 只写了一个暴力 DP 和欧拉数的部分分,不过这也是一个算得上平均水平的部分分了。最终我凭借玩 T2 拿到了第三名,并且总排也翻到了第三。
不过我相信我的心态应该是在场选手中最好的之一。别说翻到第三,就算翻到第一我也是一点反应没有。不过这时我倒是想了一种之前没有仔细想过的可能性,那就是作为第五第六进答辩。对 Day1 之后的我来说,走狗运进国家队我觉得可以,进前六我也觉得挺好,唯一稍微差一点的可能性就是 Day2 掉出前六,不过也没什么关系,因为这本来就是预期。所以我的想法是打完 Day1 我已经赢了一半,明天怎样都好。
Day2 我仍然尝试过题,不过没有成功,最终打了一些暴力获得了 100 出头的分数。最后我的总排来到第六。
我很乐意参加答辩,一方面这可以让更多人认识我,另一方面这也创造了近些年 SHOI 的一个新记录。
闭幕式公布了国家队名单,1235,这出乎很多人的意料,对于我来说还有种好像在无形之中往前进了一名的感觉......
回到上海休整一段时间后,我就开始写这篇回忆录,现在是 1 月 27 日的早上,我写完了。写的时候,我经常循环的一首歌是 CTS 闭幕式上唱过的 成都。
接下来再写一些杂谈性质的内容吧。
遗憾与期冀
其实我 OI 生涯中真的没什么遗憾了。如果说按照设想的世界线发展,我可能会遗憾最后一年没有试着训一训 OI 挑战一下 CTS 的高排名;但是现实就是让人震撼,这都让我进前六了。
硬要说的话有一些不太满意的地方。一是 APIO 2022,你会发现这是一场我回忆录里提都没有提的比赛,我本来就不想打,后来因为一些原因不小心报了名,享受了一场体验极差的比赛,实在不想说了;二是直到退役都没能 AK 一次 NOIP,其实 2022 是最有希望的一局,但是因为许久未练 OI 赛制导致产生了挂分,很可惜。
由于我自己都退役了,所以期冀只能是对后来人说的。EFZ OI 还有许多正在奋斗着的人们,希望 xiaoyaowudi,kyj 和 zght 明年 NOI 取得好成绩;希望 Kubic 能靠省选打赢复活赛,更进一步地希望 K 老师进个国家队,刷刷 SHOI 的战绩。
心态
今年一月初,由于要参加学考,所以重新背了一些必修中的古诗文。比较喜欢的还是赤壁赋中的这两段:
况吾与子渔樵于江渚之上,侣鱼虾而友麋鹿,驾一叶之扁舟,举匏樽以相属。寄蜉蝣于天地,渺沧海之一粟。哀吾生之须臾,羡长江之无穷。挟飞仙以遨游,抱明月而长终。知不可乎骤得,托遗响于悲风。
...
且夫天地之间,物各有主,苟非吾之所有,虽一毫而莫取。惟江上之清风,与山间之明月,耳得之而为声,目遇之而成色,取之无禁,用之不竭,是造物者之无尽藏也,而吾与子之所共适。
我又想到高二的时候,语文课上学习逍遥游。其中的一段是这样的:
故夫知效一官,行比一乡,德合一君,而征一国者,其自视也,亦若此矣。而宋荣子犹然笑之。且举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世,未数数然也。虽然,犹有未树也。夫列子御风而行,泠然善也,旬有五日而后反。彼于致福者,未数数然也。此虽免乎行,犹有所待者也。若夫乘天地之正,而御六气之辩,以游无穷者,彼且恶乎待哉?故曰:至人无己,神人无功,圣人无名。
课后老师让我们写一篇作文,题目就是“彼且恶乎待”。它的意思是说:修养高的人把握世界的规律,遨游于世间,哪还需要凭借什么外物呢?虽然我不同意许多道家的观点,但是这段话我确实印象比较深刻,其中的“举世誉之而不加劝,举世非之而不加沮”正是我追求的精神状态的一个方面(这也许有点断章取义)。
写到这里我又想到 孤独摇滚 里的凉,第一次看的时候就觉得她有点像我的理想状态,只是剧中表现比较夸张,而且她更胜一筹:如果我像她那么缺钱的话,我做不到那个状态。
现实中不凭借任何东西是不可能的,但是重要的是不被这些东西束缚。外物是这样:如果只注重一些眼下的状况,就会落入短视的陷阱(正如我去年 12 月时的心态)。自身也是一样:以前学校里大会上进行学习交流时许多同学会说一些比如假期里制定时间计划表之类的事情,但是我不喜欢这种东西,凭什么我自己要给自己规定几点到几点必须写作业,几点到几点必须看新闻呢?无论是对于制定还是执行的我,这都是一种痛苦。
一旦你带着这种心态去打 OI,就全都是享受比赛了。当然前提是没有现实的压力,否则有点紧张感是好事。
这一部分还没写完,但我想更多的内容写成闲话也是可以的......
印象深刻的人们
这一部分写起来可能很长,有空再补吧。
一路上的人们
基本上都是见过面的人,以认识的时间为序,尽量用 id,但不保证是当前 id 或者常用 id,也不保证都是哪个网站上的,我只是想到什么就写什么!不知道 id 的就用首字母代替了。有漏的请来找我。
Sai_0511;
zghtyarecrenj;
Kubic。
wygz;
catthomas;
tyler178;
hwy;
JohnVictor;
installb;
Karry5307;
s_r_f;
EternalAlexander;
uwagjaynoi;
樱初音斗橡皮;
Acrobat;
xiaoyaowudi;
nzhtl1477。
xch;
unzcjouhi;
zbww;
frank3215;
Hazyknight;
老 K;
EntropyIncreaser;
peehs_moorhsum;
namespace_std;
LJC00118;
xtqqwq;
little_waxberry;
djq_cpp;
小粉兔;
镜音铃;
waaadreamer;
ray;
d0zingbear;
qazswedx;
mrsrz;
FunnyCreatress;
alpha1022;
MagicSpark。
Isonan;
AKEE;
FSYo;
xpp;
dengyaotriangle;
hehezhou;
asmend;
dottle;
gyh20;
feecle6418;
127;
xyr2005;
wasa855;
xuanyi。
AThousandSun。
RSY;
Alex_Wei;
日语酱;
水军带你飞;
玄燕;
Laurie;
He_Ren。
主要史料
zjc 的回忆录:https://www.cnblogs.com/mathematician/p/12133150.html
Itst 的回忆录:https://www.cnblogs.com/Itst/p/14375079.html
xmoj 的竞赛记录。
洛谷提交记录。
我自己写的游记。