【游记】NOIP 游记 & 祭我三年的竞赛生涯
更好的体验。
将军说过:出题人一定要是人。
这篇文章包含了游记和退役纪念,从入坑开始记录。其实是我打过的比赛的游记的合集。
我是个再普通不过的 OIer,和大部分人一样。但我初三便早早退役了。作为一个退役的人,矫情一把,写下这些文字。
目前家中商量了一下,达成一致:上高中不搞 OI 了,仅参加比赛,若高一进队就成全职 OIer,当然我自己什么逼样我也有点数。
这篇文章或许能给准备入坑的,天赋一般的同学一些参考。可以根据自己需要参考的部分跳转。
由于笔者作文和屎一样,叙事也并不是平铺直叙,行文也并不流畅,欢迎大家提出措辞和作文上的建议。也欢迎大家踩我这个蒟蒻。
入坑前
我入坑是在小学的二年级,当时父亲介绍了 Scratch,很快就爱上了父亲电脑上的那只猫,每天放学回家就是折腾 Scratch。
三年级做出了第一款自己的游戏(使用 Scratch)——星际大战。现在看确实是个脑残游戏。不过是鼠标定位一个会定期发射子弹的飞机,前方有源源不断的敌机,最后有个大 BOSS。同时也开始接触 Python。
我接触 Python 的第一年什么正经事也没干,每天建一个新的源代码文件,在里面导入 turtle 包然后尝试画出一些自认为漂亮的图形并乐此不疲。
四年级接触到了 tkinter,对这个简陋的 GUI 库起了兴趣,写了些恶搞代码,发给爸妈和同学。但这样太没出息了,所以和网上认识的一个大学生合作开发了一个小软件。用 tkinter 写的,代码量 1000 行。这个软件可以简易生成 Python 的 gui 软件,将组件拖拽到工作区内就可以在出口代码中生成。有很多主题,可以使用这些主题规定软件的风格,然后该软件能给出代码。至于业务逻辑是将如按钮的交互组件作为出口,预留函数,函数交由使用者自己完成。
这东西除了自娱自乐确实没啥用,但做恶搞小玩具更加方便了——不需要用自己一个个调组件的位置了,也少了很多 bug。
主要部分是我来实现,他负责拖拽组件部分的技术支持。同时我也有了自己的 github 账号——小学的中二号,现在提了害臊,就不拿出来说了。
五年级好像啥也没干,或者整忘了。
六年级上了初中(我是 SH 的,SH 是五四学制),班任也知道我会搞计科,让我做了一个工具箱。里面有点名器、作业登记、倒计时这些东西,用了一学期没用了,因为后来学校安装了更好的可替代品。
入坑
(22 年)六年级的一次网上冲浪中,看到的一道算法题让我了解到了 OI。我从 22 年 11 月正式入坑。本身也有 C++ 语法基础,直接跳过了语法部分。
入坑的第一年是搞着玩的,真的纯瞎玩,啥题也不刷,还搞工程。每次培训班我在后台搞自己的工程。
2023 年——CSP 入门组 10 分
(23 年)七年级我开始比较认真了,多刷了点橙题,但也没有在认真搞。
那年培训机构有集训,我认识了一个当时的初三生。他很厉害,23 年入门组是 300 分,提高组应该是挂分了只有二等奖,NOIP 是 140。见到其人尊称一声大佬。问他学到哪里了?什么!线段树!woc 这种黑科技是人能学会的吗?
然后就去参加初赛了,初赛擦线过。当时实力太菜,橙题也做不出来,期望是 T1 放红题的,于是严肃挂分。在入门组的考场上哭了很久,很久,但 T1 还是做出来了。
T2、T3、T4 瞎搞,心想我这一次三等奖总有吧。
结果搞笑的事来了,T1 文件重定向到了 T2。
挂到了 10 分。
这事我还写 blog 了,lg 改革后应该看不了,你们想看就各显神通吧。链接在这。
2024 年——提高组 160,入门组 220
(24 年)此时我更加沉稳,也开始认真搞了。认识了几个好朋友,有线下的有线上的,每周末约一起打比赛。很紧张,很智障,Div 4 的比赛让我打出了 ICPC 的感觉。
父母不允许熬夜,每周选一个晚上我就偷偷把电脑打开打 CF,也是约上朋友一起(因为我英文和实力都菜)。
但我只是拿 AC 量当快感,实力实质上没什么提升。甚至我当时喜欢看名字颜色这种东西,所以吧,难评。当时是橙题基本能做,黄题要想很久很久或者教练提示,绿题我就感觉是世界难题了。
好了,说回 24 年的 CSP,入门组 T1、T2 三十分钟快速爆破,T3 想歪了,记忆化搜索瞎搞,只有 20 分,T4 这种神圣的东西我怎么敢开呢。提高组,T1 想歪了,2 小时才做完,T2 各种分讨骗到 40,T3 暴力分 20,T4 都看不懂算了。
便觉得“入门组”这种外号是表里不一的,什么入门组啊?提高组吧!那提高组叫什么呢?应该叫神仙打架。
当年提高 160 觉得还行,也是超过预期了。
2025年——提高组 192
我不想再打体育竞赛了,所以入门组干脆不搞。
25 年是我投入最认真的一年,文化课和竞赛的权重达到了 1:1。每周末作业糊弄一下就时间全给竞赛了,工作日每天也会带一道绿题或蓝题到学校里来想。
此时我已经能做到,黄题基本都能做出,绿题 1 小时内基本都能做出,蓝题给点提示或老师指导能做出了。当然也有些特别板子的蓝,难度在代码实现上,可能可以做到 5~7min 暴切。
我 24 年提高组初赛踩着线过的(差 1 分就废),所以 25 年我决定保险一点——6 月的 GESP 8 级干脆当 CSP 初赛免试劵,正好我 24 年的 12 月 GESP 低分刷到 7 级了。
那天是在一所高中考的 GESP,我是最后出场的,其实提早 2 小时出场也没问题。为什么呢?T1 很典,7 分钟暴切。我 T2 想歪了,各种组合数学乱搞只有 12.5。况且那个中央空调在我顶上,风很大,我感冒了。
最后还是过了,6 月 GESP 八级 84 分,S 初赛免试,差点就废。
暑假我没忍住,去搞工程了,暑假集训营期间花了一下午写完了 TouchFish 的初代版本,招了一个开发组,帮我开发这个。然后忘本的我在这备赛。
提高组的前一周我紧张地备赛,常常因为电脑使用和父母吵架。不过也是补上了该学没学或不会背板子的提高组算法。比如那个线段树,以前遇到线段树题目我要打开 OI-Wiki 分屏抄的,经过那段时间魔鬼训练能在 3~5 分钟把经典线段树给打完。
说回提高,那一次是在七宝考的,前一天晚上没睡好, 2 点才睡着,早上补回来的。我没有七宝考试的朋友,也没有手机,看着人山人海,在七宝中学的门口来回踱步,很孤寂。
终于进去了!发现 T1 不会,怎么办?dp!1 小时没弄出来!贪心瞎搞,所有可能的都弄一遍。
于是我 T1 写了 3 小时才写完……
T2 是我最喜欢的最小生成树和我很熟悉的子集枚举,7min 写完 13min 调,结束!
T3 子任务里感觉没有能骗分的,那就不看了。
T4 打个暴力,输出个阶乘看人品。
但 T2 忘记卡常,100->80。T4 确实有答案为阶乘的,8->12。
合计:100+80+0+12=192。发挥失常了,这只是下限。
2025 CSP-S 是我为时较短的竞赛生涯上最重要也是最有用的一次比赛,这点我后面关于 OI 的升学效益会讲。
2025 NOIP 游记
Day -9
校运会,没我事,窝在家备赛。
其实比上学舒服,而且备赛很快乐。
Day -7~-2
备赛 NOIP 前一周,我觉得根据往年难度,前两题骗到 170+ 不成问题,后面搞一搞省一应该就到手了。如果说有一题卡住了那也有题目能骗,总之容错是有的。所以我打算把宝压在 T4 的数据结构上,确实我有点疯癫。
NOIP T4 的数据结构我没 AC 过一道,NOIP 前一周内我学了很多数据结构的稀奇古怪的算法,有:
- 分块。
- 可持久化权值线段树,我还写了笔记。
- 线段树套线段树,树状数组套线段树。
- 莫队。
一周掌握这么多数据结构肯定是不可能的,这就得提到我更加更加疯癫复古的一个学习方法了。
我把洛谷的深进带到了学校,打印了一些优秀 OIer 的博客以及 OI-Wiki 的介绍。每天学习了以后把这些板子再背然后默下来。
但紧张的学校生活肯定是没时间系统学习的,所以我所有除了语文的课都拿去恶补了,偷偷打游击战,一边看课本一边看深进一边默板子,还要和老师斗智斗勇。课一点没听,板子是记得挺熟。我也成功达成了英语老师收走两次我的“默写纸”的战绩。
Day -1
可爱 CCF 给我一个宝山考生干到华二去了,开车 1 小时,距离 50km。八点半开考……
所以这天晚上父母给我弄到张江住酒店了,住酒店睡得倒很舒服,没有出现 CSP 那一次失眠的现象。
那天晚上啥也没干,几个恶补了的数据结构看了一下,睡了
Day 0
woc 这什么玩意儿!CCF 你要干什么。
还好我是体验的,不然就中道崩殂了。
(下面除 T4 的所有题目都加了玄学骗分,看运气,但理论上不会低于给出的分数)
T1 发挥失常,3.5hrs 没调出来,35pts。(大样例后 65% 部分没过)
T2 暴力计数,20pts。(如果玄学也不行,就输出
T3 瞎搞,0 pts。(一个大样例也过不了)
T4,这我得好好讲讲,我的算法是
复杂度和常数太劣了,但 T4 保证输出是对的(所有大样例都测了),本地是 5pts。
所以:35+20+0+5=60。
那天我从 EFZ 的 3 考场走出来,没有一个人我认识,10 分钟后所有人都走光了,只我一人在 EFZ 的校园里游荡。落叶化作糖纸,上面写着方案数模 998244353 的值。
正午的阳光很耀眼,照在我的脸上,耀眼到使我迷失了方向。过了好久,我终于走出了 EFZ。外面父母已等候多时。此时有三种感觉——一是饿、二是累、三是迷茫。于是走到便利店,看到柜台前摆的各式各样的糖,才发现我也不知道该买多少糖。
最后考场附近又恢复了寂静,成了 EFZ 又一个寂静的下午。
对于 noip2025,伟大的将军说过:
- 出题人一定要是人
- NOIP 一定要是 NOI in Province
- 普通 OIer 一定要能做
- 题目一定要有区分度
- CCF一定是诈骗组织
关于 OI 的升学效益
关于小升初:如果你 GESP 小学能刷到 5 级,那么是较容易上理想初中的,那边的信息老师会想办法把你搞过去。
关于初升高:一些重视 OI 的强省,如果你初三及以前混到 S 一等里的较高分,是较受一些中上位置及以下的重高青睐的。可以走自招降分。能给 whk 打辅助。
关于高中升大学,NOI Ag 以下几乎不产生升学效益。
总结
那我打 OI 是为了什么呢?
热爱。
虽然有收获,有升学上的帮助,但归根到底,就是因为热爱。对无情的代码有感情是很抽的事,不过这年纪不中二以后就没能力中二了。
以及其是一个重要的人生经历,获得很多快乐,学到很多东西。
引用一知名教练的一句话:
我觉得每个竞赛选手/教练要成长三次:第一次是发现自己并不那么聪明的时候;第二次是发现即使再怎么努力,终究还是有些事无能为力的时候;第三次是明知道有些事可能会无能为力,但还是要去尽力争取的时候。
我也经历了这三次,最后发现我也不过一普通人,退役前打死也只能混到省一,走的依旧是经典的 whk 道路。有对自我更全面的认知。或许我运气会很好,拿到省一并混到参加明年省选的机会,但也不抱太大希望。
就写这么多吧,以上就是我想对自己说的话。