OI 生涯回忆(2017~2023)
OI 生涯回忆(2017~2023)
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
初探编程(2015~2017)
我第一次接触编程大概是在三年级(2015 年),那会听说了编程的概念,感觉非常有意思,还可以帮我做数学题。
我能够走上编程之路,大概是某一次我问我家长会不会编程,然后爸爸恰好会 Visual C++,就写了一段判断一个正整数是不是质数的程序。虽然他写程序足足花了半个小时,而且写出来的程序在输入 \(1\) 或 \(2\) 时会给出错误的答案,但是这对当时的我而言已经非常厉害了。之后我就让家长教我编程,家长考虑到 Python 语言相对简单,于是我就开始了 Python 的学习。
当时学 Python 主要还是用 turtle 库玩,在几天的学习之后,我对顺序结构、选择结构、循环结构有了极为初步的概念,于是照着参考书写下了类似下面的代码:
import turtle
keep_going = True
turned = 0
while keep_going:
turtle.forward(100)
turtle.right(60)
turned += 60
if turned == 360:
keep_going = False
在运行之后竟然成功在画布上画出了一个正六边形,感觉成就感满满。
当时参考书上用的是 while
循环的概念,所以我也用了 while
循环,以及抄来的 keep_going
变量名。
后来学到了 random 伪随机库,就开始结合 turtle 搞抽象艺术:
import turtle
import random
keep_going = True
count = 0
turtle.setup(800, 600)
turtle.title('hahaha')
turtle.speed(10)
while keep_going:
R = random.random()
G = random.random()
B = random.random()
turtle.pencolor(R, G, B)
x = random.randint(-400, 400)
y = random.randint(-300, 300)
turtle.up()
turtle.goto(x, y)
turtle.down()
r = random.uniform(10, 100)
turtle.dot(r)
count += 1
if count == 250:
keep_going = False
不过这只是初探编程罢了。到了四五年级,我的兴趣又被化学吸引走了,于是那两年把高中化学我感兴趣的部分的科普视频看了几遍,还把一整个元素周期表背了下来。那时候由于某些原因,我有很多时间可以用来看想看的书、学想学的知识,现在想来真的十分宝贵。
第一场 NOIP(2017~2018)
五年级(2017 年),由于某些原因,我从原来的小学转学到清华附中继续学业。那时候我认识了不少同样对编程感兴趣的同学,同时也第一次听说有信息学竞赛,于是在当年 9 月,便开始了我的信息学竞赛学习之旅。
NOIP 2017 时,我才刚刚掌握 C++ 语言的基本语法,于是并没有参赛。
那一年的 OI 学习非常地得心应手。不知道是不是 Python 编程基础的缘故,我很快就掌握了基本语法的使用,且逐渐开始学习普及组算法。从递归、递推,到二分、排序、贪心、搜索等基础算法,再到背包等较为简单的动态规划模型,我一直是 OI 课外班上掌握最好的同学,也常常帮助其他同学调试代码,总结易错点。
由于课外班进度较慢,我收获了一个较为扎实的算法基础,但是并没有覆盖到所有普及组算法。
很快就上了六年级(2018 年),我报名参加了 NOIP 2018 的普及组比赛。10 月 13 日的初赛拿到了现在看来很低的成绩,但还是平平稳稳地过了。11 月 10 日的复赛考试,很不幸地遇到了难出天际的“标题统计、龙虎斗、摆渡车、对称二叉树”四道题,尤其是当时我还不知道树的概念。赛时拿到了 \(100+80+10+4=194\) 的对当时的我来说相当好的成绩,远高于我的预期。但可惜的是,成绩公布后发现北京的普及组一等奖分数线是 \(195\) 分,我就这样与普及组一等奖擦肩而过了。
这次竞赛后,我也对信息学竞赛充满了兴趣和信心:第一年学习就获得了普及组二等奖的第一名,提高组一等奖仿佛触手可及一样。
从普及组毕业(2018~2019)
在 NOIP 2018 结束后,直到 2019 年的比赛,很多初探 OI 的同学们都陆陆续续地退出了 OI 的学习,但我还在继续坚持着我的爱好。
之后的一年,我渐渐地接触到并查集、ST 表、树状数组、线段树等基础数据结构,以及最短路、最小生成树等基础图论方面的知识。那时候这些所有的模板题在洛谷的评分还是蓝色的“提高+/省选-”,我可以清楚地看到,从只会做入门题,到能做一些明亮色调评分的题,一直到现在,我已经可以做出部分深色评分的题了,我确实是在快速进步的。
2019 年 8 月 16 日,我正和家长在外旅游(已经记不清具体地点了),突然收到了一个晴天霹雳:CCF 关于暂停 NOIP 竞赛的公告。信息学竞赛要停办了吗?那我该怎么办?难道换一门竞赛学吗?好在于 9 月 6 日,CCF 关于举办 CSP-J/S 的报名通知 解答了我的困惑:信息学竞赛会继续办,我也可以继续学。
洛谷推出了奖项认证功能,我进行了认证,凭借 NOIP 2018 普及组 \(194\) 分的成绩拿到了 \(4\) 级绿勾。
CSP-J/S 2019 本来打算两个组别都报,但是最后只报了入门级(相当于原 NOIP 普及组)。入门组遇到了难度正常些的“数字游戏、公交换乘、纪念品、加工零件”四道题。后两题对当时的我来说很难,最终拿到了 \(100+100+10+35=245\) 的成绩,获得了入门级一等。那时候年纪小不懂事,在第二题中使用了 free
作为变量名,考完试到洛谷自测发现编译错误,担心了好久,好在最终评测与考试在相同环境,没有编译错误。
虽然分数不高,但也拿到了入门级一等,算是从普及组毕业了。
在奖项认证更新后,获得了 \(5\) 级绿勾。
幸福的初中生活(2019~2022)
从初一(2019)开始,我就进入了提高组算法的学习,这(至少在当时)可以说得上是非常令人羡慕的了。我不满足于这几年上的课外班的速度,也开始尝试自学一些感兴趣的提高组和省选算法。
后来(记不清具体时间了),家长帮我联系到了 @泥土笨笨 老师,之后我就退出了原来的课外班,跟 @泥土笨笨 的班学习算法。我在这个班上几乎是年龄最小的,同时也几乎是学得最好的。从这时开始我便加快步伐,学完了所有提高组算法,同时也学了不少重要的省选算法。
去体验参加了 APIO 2020 中国区竞赛,但由于自己什么都不会,而且策略出现了很大的问题,最终获得了 \(0+0+0=0\) 的好成绩。
在 CSP-J/S 2020 中,我只报名了提高级(相当于原 NOIP 提高组),遇到了“儒略日、动物园、函数调用、贪吃蛇”四道题。看到第一题是这么个玩意之后,直接被搞心态了,当时没啥经验,没想到可以写一个日期类然后直接暴力,写了一堆非常长的、非常慢的奇怪计算,最后拿到了非常低的分数。好在还算沉着冷静,看出第二题是简单题,把第二题顺利切掉了。我非常清楚最后一题不可做,但也给我看傻了,我大抵确实不如蛇聪明。最终得分 \(40+100+10+20=170\),拿到了提高级一等。
在奖项认证更新后,获得了 \(6\) 级蓝勾。
可惜的是,在 NOIP 2020 的初中生同步赛中(“排水系统、字符串匹配、移球游戏、微信步数”),由于第一题求 lcm 先乘后除的 long long 溢出,以及第三题构造题完全不会做,获得了惨烈的 \(60+32+0+35=127\) 分,达二等奖分数线,没能去成 BJOI 2021。
在初二的一年(2020.9~2021.6),在教练的鼓励下,我也进行了一些新尝试,例如给学弟学妹们的入门级模拟赛出题,以及给同学讲算法课等等。我是清华附中信息学竞赛可考证的第一批为模拟赛出题的学生之一,也是清华附中信息学竞赛可考证的第一次为大家讲课的学生。2020 年开始,我也加入了 CodeForces 和 AtCoder 的竞技性编程(Competitive Programming,CP)圈子,开始打 CF 和 AT 的比赛。从 2021 年开始,我也组队参加 THUPC 的活动,虽然每次组的队都不一样。
在学弟学妹的某一场模拟赛结束之后,由于某道我出的题难度把控失误,导致排行榜十分冷清,就被 @zplqwq 疯狂吐槽,后来约了几次面基,再加上网上聊天,就渐渐熟悉了起来,到现在她仍然是我很好的朋友。怎么出模拟赛还有社交功能的。
由于我的体育不好,在初二时就预见到了体育中考可能会有的巨大压力,于是当时也面临着是去是留的重大抉择。不得不感谢 @zplqwq 在那段时间给予我的帮助。由于某些原因,最终还是选择留了下来,正常参加中考。
去体验参加了 NOI WC 2021,遇到了“括号路径、表达式求值、斐波那契”三道题,打了一场暴力拿了 \(32+35+20=87\) 分,拿到了铜牌。
去体验参加了 APIO 2021 中国区竞赛,遇到了“六边形领域、雨林跳跃、封闭道路”三道题,打了一场暴力拿了 \(9+25+12=46\) 分,拿到了中国区铜牌。
2021 年暑假,我的 CF 第一次达到 Candidate Master 评级,AT 第一次达到 2 Kyu 评级。在暑假的末尾,我的 CF 第一次达到 Master 评级。
随后升入初三,便是 CSP-J/S 2021 的比赛,遇到了第一题特别难的“廊桥分配、括号序列、回文、交通规划”四道题。第一题花了一个多小时调试了出来,立刻去打后三题的暴力。第二题的正解几乎想了出来,但是时间不够还是没做出来。第三题是简单题,但是当时的我并不敢去想第三题。最终成绩为 \(100+65+28+0=193\),拿到了提高级一等。
在奖项认证更新后,获得了 \(7\) 级蓝勾。
在 NOIP 2021 的初中生同步赛中(“报数、数列、方差、棋局”),做出了第三题写随机化拼假贪心的正确决策,获得了 \(100+30+60+16=206\) 分,达一等奖分数线。
参加了 NOI WC 2022,遇到了“序列变换、秃子酋长、猜词”三道题。第三题的手撸 Wordle 决策树比较逆天,我瞎写的不知道什么东西,据说标程写了 20 KB。最终得分 \(10+40+68=118\),拿到了我的第一块银牌。
2022 年年初,AT 第一次达到 1 Dan 评级。
由于 NOIP 2021 达一等奖分数线,顺利参加了 BJOI 2022 的联合省选。第一天是“预处理器、填树、学术社区”属实给我震撼到了,原因是第一题竟然是大模拟,第三题竟然是这么奇怪的符合洛谷实际的题目背景。第二天是“卡牌、序列变换、最大权独立集问题”。最终拿到了 \(100+7+24+25+8+12=176\) 分。
参加了 THUSC 2022 的活动,拿到了优秀认可。
参加了 APIO 2022 中国区竞赛线上组别,是“火星、游戏、排列”三道题,得分 \(36+60+71.20=167.20\),获得了线上组别金牌,我的第一块金牌,虽然这个成绩在线下组别只有银牌。
初中生活总体来讲还是很幸福的:学业压力适中,OI 拿到了 \(7\) 级勾子,拿全了金银铜牌,NOI 2022 的 D 类申请顺利通过。唯一很难受的事情是体育的放学后训练,所有非满分的同学都要训练。但是由于我的体育太差了,一直在及格线上下徘徊,并没有人适合与我一起跑步,于是每天都要受到孤独和生理上痛苦的折磨。我也考虑过免体拿及格分,但还是决定去拼一把。最终由于众所周知的原因,体育中考改为合格考,我也获得了体育满分。虽然中考考得不太好,但还是上了清华附中。
Dark Age(2022~2023)
随着中考的结束,初中时代顺利落幕。在最后一科考试结束后,我的内心突然感到十分空虚。什么?初中这就结束了?我已经是高中生了吗?尽管不愿接受,但这已是事实,我不得不和我喜欢的初中班主任、初中各科老师以及同学分开了。
虽然我获得了不应属于我的体育满分(本应在及格线附近的),没有对升学造成影响,但是这段时间的训练像是给我留下了心理阴影一般。我从此痛恨所有体育运动,直到后来才偶然间出现了一个例外。
再加上由于众所周知的原因,NOI 2022 推迟且改举办地。最终又由于某些原因,我没能像预想的一样以 D 类名额身份参加 NOI 2022 的比赛。
以上三点(主要是后两点)给我造成了极大的打击。心理上的孤独感、绝望感和不被爱的感觉持续地占据着我的思想,导致我由先前的非常乐观的状态直接转变为了极度悲观,经常躲在角落里偷偷地擦眼泪。放弃参加 NOI 2022 是我初学 OI 以来期盼了好几年的梦想的破灭,在当时直接激起了我对 OI 的抵触情绪。但是 OI 又是我当时唯一强烈的兴趣爱好,假如我失去了 OI,我无法看到生活的一丝希望,于是我硬撑着把 OI 坚持了下来,决定考完一次 NOI 就退役。在此之后,我对一切事物突然失去了兴趣,任何东西再也无法激起我的好奇心,我做一件事情也仅仅是因为我认为我应该做而已。
军训后便正式开始了高一的生活,但是对班级部分同学风气的厌恶、对初中的怀念以及心理上的障碍导致我迟迟不能真正融入新的班级,这也导致了我心理上的一些问题和极差的精神状态迟迟没有得到解决,一直持续了很久。2022 年的暑假是我的 Dark Age 的开始。
2022 年暑假,我的 CF 成功达到 Grandmaster 评级。
开学后很快就面临 CSP-J/S 2022 的比赛,是“假期计划、策略游戏、星战、数据传输”四道题。又是第一题特别难的一次比赛,但是对于当时的我来说已经没什么难度了,下发压缩包密码到开始考试的五分钟已经把前两题都秒了。可惜没有见过 XOR-HASH 的技巧,也不会做第四题,然后第三题的暴力还写挂了一部分,最终拿到了 \(100+100+40+56=296\),拿到了提高级一等,比较可惜的是没上 \(300\) 分。
由于众所周知的原因,北京没有举办 NOIP 2022,改为 2023 年春季测试。
参加了 NOI WC 2023,结果遇到了“楼梯、比赛、树据结构”三道题,拿到了 \(25+24+36=85\) 分,获得银牌,可惜的是与金牌线只差 \(4\) 分。
之后便是 2023 年春季测试,可能是为了照顾弱省(没考 NOIP 2022 的好像好多是弱省),组了“涂色游戏、幂次、圣诞树、密码锁”四道题。不过考场上我被降智了,第三题的区间 DP 没搞出来,好在拼了十个假贪心过了这题,得分 \(100+100+100+45=345\),拿到了春季测试一等奖。
BJOI 2023 联合省选遇到了“火车站、城市建造、人员调度、过河卒、填数游戏、染色数组”六道题。并没有切掉第二天第一题,最终两天的得分是 \(173+64=237\) 分。虽然没有进队,但至少成功让自己的名字上了公示名单。
THUSC 2023 在南京举办,是我参加的第一个出北京的比赛。此前的各种比赛要么是在北京考,要么是由于众所周知的原因线上考。这趟行程主要通过 @zplqwq 面基到了一些成都七中的网友。比赛结果是获得了一等认可(相当于原 THUSC 优秀认可)。
紧接着又是在南京举办的 APIO 2023 中国区竞赛线下组别。这趟行程认识了不少东北的朋友,还跟他们吃了一次火锅,打了好多天狼人杀。比赛日遇到了“赛博乐园、序列、Alice、Bob 与 Circuit”三道题。但是由于中国区的竞赛是同时开始的,评测机测不过来,导致 IOI 赛制实际上变为 OI 赛制。我的第一题代码有一个小错误,但是在比赛结束前不久才测出来,最终也没能调出来。我不记得每道题的小分了,最终总分是 \(169\) 分,拿到了线下组别铜牌。如果我参加的是线上组别,那么这个分数有线上组别金牌,非常离谱。
随后 D 类名额申请通过,如愿参加了在成都举办的 NOI 2023 夏令营,我也组织了北京的徽章信息收集工作。交换徽章的活动十分有趣,算是在面基后给对方留下一个小小的纪念品。NOI 的比赛是“笔试、方格染色、桂花树、深搜、贸易、字符串、合并书本”共五十六道题。由于心理上的历史遗留问题,我的状态十分不好,再加上对第二天的难度预估失误,导致第二天的成绩十分不理想。笔试还不幸扣了一分。最终拿到了 \(371\) 的成绩,达铜牌分数线。
在奖项认证更新后,获得了 \(8\) 级金勾。
收获到了以下徽章:(排名不分先后,其中有少数几个是 NOI 2023 前获得的)
在参加了 NOI 2023 后,我心理上的历史遗留问题并没有得到任何好转,反而对我造成了更多的影响。我的专注力和执行力开始受到影响,开始出现急躁、不安、头疼等生理上的反应。我也多次找教练聊过这件事,但依然没有任何改变。
NOI 2022 时曾经决定考一次 NOI 就退役,那我要不要退役呢?我本打算立刻退役,但是经过了一年的努力,我依然没有找到任何其他能使我感到一丝兴趣的事物。为了给自己一个坚持下去的希望,我选择继续推迟我的退役计划。
最后一场 NOIP(2023)
十一期间,心理上的波动突然变小了,对我的生活也不再有那么大的影响。我不确定这件事情究竟是过去了,还是我已经对它麻木了。我也不确定我现在是否已经走出了这痛苦的回忆,还是它正在策划在未来的某一时刻卷土重来。不过,我还是往积极的方向想吧。
十一之后一直到 NOIP 2023 以前,我决定脱产,加入到联考之中。当时我最担心的事情是我的精神状态是否能承受得住脱产的模式,不过后来发现我还是能接受的。可能是因为我没怎么见过套路,我确实从联考中学到了不少新知识、新技巧。脱产期间,我也开始和同学打乒乓球,这就是上文提到过的我讨厌一切体育运动的目前唯一一个例外。
CSP-J/S 2023 中,我顺利地做完了全部四道题(“密码锁、消消乐、结构体、种树”),可惜的是第三题大模拟有一个地方写错了,大样例中并没有涉及,于是错失了满分。最终得分 \(100+100+60+100=360\),获得提高级一等。
可能是 CSP-S 2023 超常发挥,以及 rp 守恒定律的缘故,NOIP 2023 中我发挥出了我的最低水平。在“词典、三值逻辑、双序列拓展、天天爱打卡”中,我只过了前两题,第三题和第四题打了较低分数的暴力。最终得分 \(100+100+35+56=291\),获奖分数线未出。
经过了将近两周时间考虑,我决定退出 OI 的学习,不再准备后续的 OI 考试(但可能依然会参加)。
在 2018 年或者 2019 年,我曾经看到过下面这段话:(出处不详)
一个个 OIer 的竞赛生涯总是从一场 NOIP 开始,大多也在一场 NOIP 中结束,好似一次次轮回在不断上演。
如果这次 NOIP 是你的起点,那么祝你的 OI 生涯如同夏花般绚烂。
如果这次 NOIP 是你的终点,那么祝你的 OI 回忆宛若繁星般璀璨。
NOIP 2018 普及组是我 OI 生涯的起点,NOIP 2023 是我 OI 生涯的终点,属于我的轮回已经悄无声息地结束了。
我正在逐步回归文化课的学习,希望可以在 2025 年高考取得理想的成绩。
我在 OI 中取得了一些微不足道的成就:
- NOIP 普及组/CSP 入门级:一等(奖)。
- CSP 提高级/NOIP:一等(奖)。
- NOI WC:银牌。
- APIO 中国区:线上金牌,线下铜牌。
- NOI 夏令营:达铜牌分数线。
- THUSC:优秀(一等)认可。
- USACO:铂金(Platinum)组别。
- 洛谷:AC 4152,最高咕值排名 2。(我本来想在这里写更有意义的等级分的,但奈何打的场次不多,等级分尚未收敛。)
- CF:最高评级 Grandmaster 2417,单场比赛最高表现 International Grandmaster 2728(按 Carrot 插件),最高贡献 +110,出过一场 div2 比赛。
- AT:最高评级 1 Dan 2171,单场比赛最高表现 4 Dan 2668;工程题(Heuristic)最高评级 1402,单场比赛最高表现 2128。
- LC:最高评级 Guardian 3083,单场比赛最前排名 1/2(中国站排名/总排名)。
最后,是致谢环节:
- 感谢家长对我学习信息学竞赛的支持!
- 感谢 Z 老师、@sujingmeng S 老师、@泥土笨笨 L 老师、@xuyan1 X 老师、@Darko1227 D 老师、@songxinbo S 老师在 OI 方面对我的指导!(按时间先后顺序)
- 感谢初中班主任 G 老师和学校 Z 老师对我的关照,以及在某些方面给予我的帮助和建议!
- 感谢高中班主任 S 老师对我参加竞赛的支持和帮助!
- 感谢 @tonytt、@Golem、@于斯为盛、@zzzzzgym 等学长学姐的指导!
- 感谢 @AC_Automation、@henrytb、@sqrt_7、@2x6_81、@registerGen、@AliceLi、@ldj2006 同年级同学的互相帮助和支持!
- 感谢 @yinzijia、@LincW、@anthonyaaabc、@liucuiqing_lily、@fulingfei、@xjy2020 等学弟学妹的陪伴!
- 感谢 @zplqwq 和 @N_z_ 在我有困难时伸出援手!
- 感谢所有曾经关心过我、帮助过我的网友!
- 感谢看到了这里的你!
悄悄的我走了,
正如我悄悄的来;
我挥一挥衣袖,
不带走一片云彩。
尺子
2023 年 11 月 30 日