[闲话]退役记
概述 · 茶馆里请坐
不是很会讲故事,就随便闲话点东西吧,不想看故事的可以直接到最后看看感想,当然感想也没什么营养就对了,权当是对自己几年奥赛生涯的总结。
故事部分几乎围绕笔者中学信息奥赛生涯,其中可能穿插一点其他东西。
下文中人名、校名均隐去,代之以网名或单字母化名。
故事 · 闲言碎语
2018 · 懵懂
我学信息学奥赛大概有四五年了,最早可溯至六年级升学想收集证书,正好本省开设了 NOIP 小学组,便学了两个月 C++ 混一等奖(那年三等线好像是〇分,真正意义上的人人有奖)。虽不知最后是否见用,总之 2018 年 9 月份是我对信息学奥赛认识之始。
2019 · 入门
六年级下学期为小升初忙乱,就没怎么管 OI 了。那年 L 校初中搞面试,因为担心回滚到直升烂初中,父母经某培训机构 H 老师介绍让我见了 Y 主任(现在已经成副校长了,唏嘘)。小学我本来学数学比较多,但是 Y 主任听说我参加过 NOIP 小学组后就直接叫来了 J 教练。之前早闻 J 教练的大名,感觉非常乡村风,见到真人后就更坚定了此想法,不过还是跟着去做了两个题,被 J 评价为「初二水平」。那次也是唯一一次被 J 领着见到了 _rqy 和 DDOSvoid 佬,在 Y 主任办公室门口还见到了数竞佬 oy。
插叙一段介绍一下 J 教练。这位来自聊城大学计算机系的「教练」,体格强壮、面带福气,说话好口吃、奥赛学不通,情绪阴晴不定、颇爱多管闲事,纯属找不到教练拉来凑数的。
在上初一前的暑假,J 教练说我可以去 L 校高中部住几天,跟竞赛班一起训练,所以被 L 校初中部录取的消息出来后就直接过去了。当时感觉 L 校的作息真是反人类,每天一到下午就困死。当时我还比较内向,自己做点洛谷橙题黄题,然后偷偷认识了 water_lift、Jelly Goat、小花等大佬(当然他们当时竝不认识我,现在也是),暑假就这么颓过去了。现在我自己成了学长,才明白当初本不用如此紧张。
初一军训时班主任让我见一下初中部的教练 C 教练,其略知了我的情况后就是平淡的初一生活。第一场 CSP-J 获得了 200 分的好成绩,当时我 T4 还因快读写错丢了一个暴力。初中时 J 教练允许我每周一两次去高中部机房,那时候我去机房实际带着不纯的目的:吃一顿高中部的晚饭、早点下课给家里打电话。
2020 · 进步
初一下学期因为疫情在家网课了好几个月,这几个月进步还比较快,学习了很多提高组的知识,并且还在 J 教练的带领下参与了高中部的训练。(埋下伏笔,有许多无用功)
初二出现了 CSP 和 NOIP 竝行的怪现象,也是我第一次参加提高组,那年我水平很差,不过由于题目质量拉只靠堆暴力就得了 165。不过到了 NOIP 就现原形了——60+32+0+0,当时场上甚至拓扑排序都忘记写。
L 校高中部有竞赛班制度——初三上学期选拔考试,通过的可进入高中部提前半年学习高中课程和奥赛。我初二时本想去试试,但是因为错过了考试,找 Y 主任和 J 教练求助——原因一是当年还有三位初二同学通过了考试,内心不平(这几位同学分别选了数理化奥赛,今日都大有前途);二是当时 L 校初中部招来一反人类的新校长,我急需逃离初中部。于是 Y 同意我参加竞赛班的开学考试作为补考,恶补了一下高中知识就去了,最后成绩似乎 Y 主任能接受,就留下了我。当然这是很侥幸的,因为正常的考试应该是有竞赛内容的,而且校内题也比较难。
当时初三竞赛班有不超过十位同仁,比较强的如 zythonc、天梦、Dfkuaid 等,还有几位被拉来充数的初学者(Y 主任似乎曾要求必须选一科奥赛,哪怕只是想超前学习高中课)。还结识了高一级的 Wild_Donkey、Buffett 等巨佬。
2021 · 浮躁
现在回想起来,那个学期是我最飘的一学期。虽然 NOIP2020 成绩非常烂,但我仍然做出了在联赛知识不扎实的情况下继续学习省选知识的错误决定,还买了一堆没用的数学书啃(部分也可归咎于 J 教练和我家长的激进)。基本功不扎实,导致我那时虽然天天刷紫黑题目,但大部分需要查看题解,也培养了不认真思考的坏习惯(毕竟过难的知识思考了也不会有任何结果)。
2021 年暑假我报了 ZROI 为期一个月的暑假班,那是我第一次独自出远门训练——效果自然一般,非常颓废。暑假后我就跟着竞赛班升入了 L 校高一,虽然那时候我的实际学籍是初三,不过我还是享受了几乎和正常入学的学生相同的待遇。那年 CSP 由于整整一年点错科技树,成绩还不如去年,NOIP 挂得也是非常惨,到此我的年龄优势就彻底磨没了。
NOIP 后我踟蹰良久,甚至考虑过转数学奥赛竝购买了一些资料,可惜后来很多资料荒废了。这时候我已经意识到我的菜是基本功不扎实的问题,竝打算根据 NOI 大纲逐步复习之前学过的内容,但此时尚未意识到思维训练之重要性,codeforces 和 AtCoder 账号都没怎么用过。
2022 · 知返
元旦到了,我因流感回家错过了元旦晚会,但是恰好赶上了一次号家军的插班测试。其实之前也尝试过,不过一直无果。这次可能比以前稍好点,号爸允许我年后去南京接受训练。早就听说号家军在江苏省以至全国都是极负盛名的,所以年后就直接过去了。
找号爸聊了聊,他大概了解了我的情况,然后指出我前一年的科技树严重点错了,并且我代码基础不好,需要先打基础,号爸还说我来得不算晚、会尽力帮助我。打基础的重要方式之一就是打比赛、看高手代码(号爸非常喜欢 KrK、SSRS、jiangly、kotatsugame 等人的码风,后来自己看的时候发觉确实好)、写题解。当时那边只有省选训练,我跟着自然是天天爆〇,于是寒假就这么过去了。
有了号爸指导,内心比以前有底一点,于是开学就直接停课了,每天做号爸给的基础题,每场 codeforces 和 AtCoder 的比赛也不落下。这样训练大概几个月,我才算是学会了写代码并且能快速实现出思路,显然孱弱的代码能力是乱看题解的后遗症,号爸也禁止我随意看题解。
L 校有推荐生制度,每年五月通过数理化奥赛考试选拔两百多人免中考入学。由于跳级,此时我的实际学籍为初三,于是参加了选拔考试,过掉后就继续奥赛。推荐生考试后、暑假前,我得知了一大好消息:J 教练被调走,初中部的 C 教练成为了我们的新教练。C 教练为人善良热情,智力正常,学生的心情比之前好多了。这里再插一段后续的事情,事实上 J 教练并没有完全退出,而是偶尔来盯盯自习、讲点没用的东西。某天我和低年级同学交流时了解到其还在抱着线性代数等竞赛几乎用不到但是很费时间、并且其自己也讲不明白的东西讲来讲去,顿时心生怒火——当年点错的科技树,有不少该归功于这位 J 教练的乱讲。根本原因可能是其认为 _rqy 数学好,就赶大家的数学基础。
暑假我又去了南京,并且在那边呆了一个多月,南京的夏天是真的热。那段时间听了很多课,也做了很多模拟赛,但水平都一般,原因是思维能力还差太多。在南京结识了全国各地的大佬,也切实感受到了来自身边的压力。
九月份开学当然继续停课,开学后两个竞赛班重新划分,只留了一个专门搞竞赛的,文化课班的班主任 H 是个非常落后且魔怔的贵物,与竞赛班班主任 S 形成鲜明对比,于是我赶紧润(毕竟此时确未退役)。插几句,事实上一个好的班主任真的很重要,让 H 这种不会教育只会死抓的教师带竞赛班显然是不合适的,其和 S 的教育理念也有众多分歧。例如,H 宣称「课间就是上课时间」,而 S 竝未对此提出要求。利用国庆假期又去了一次南京,回来得知山东 CSP 寄了,就继续训练。
赛前号爸指出我今年进省队很难,应兼顾文化课,竝要求我做动态规划和数据结构的专项训练。终于到了 NOIP2022 比赛日,第一题很简单,但是第二题就把我卡了一会,后面看三四题秒不掉(事实上第三题真的很板,秒不掉纯粹是自己的问题)就继续二,暴力打满之后也没有切出任何一题,一百多分遗憾离场。
出场后得知 L 校全军覆没——最有希望进队、去年就 200 分水平的 zythonc 因为没对拍几乎全挂,天梦由于被第二题卡住没写完第三题,其他人也少有过百的。三年提高过不了 200 的我当然是不能再停课了,我便开始回到班里上文化课,正好这几天网课给我以适应时间。
再插一句,2022 年底的希顶社区发生了不少诡异的事,我也由此与之斩断一些联系,获得了更多思考。
2023 · 启程
时间过得真的好快,我也稍微进入了文化课的状态。学了一两周居然就校 100 市 600+,感觉别人都在隐藏实力。当然更强的是天梦同学年级第一,也许我和别人的学习方法真的有差距。
今年还抓了一下中科大少创班的尾巴,少年班已经报不了了。谴责一下招生办,把年龄限制卡到 1 月 1 日而非正常的 9 月 1 日,导致三分之一正常上学的同学失去了一次机会。由于我数理竞赛基础几乎为〇,所以今年也就去考着玩玩,正好借此机会继续在家,反正对之后的高考也不像信竞那么无用(伏笔:2024 年高考改革后信竞开始对数学 19 题产生作用)。我学籍上的高中生活实际刚过去一学期,还有大为广阔的天地供我施展。
以下内容为 2023.9.3 更新。
距离这篇文章的发布日期已经过去半年多了,这半年又发生了不少事情,虽然可能大部分与 OI 无关了,但仍想提笔(提键盘?)写写。如果不想看,还是请您跳到下面的感想部分。
前文讲到我今年在备考科大,少创班的流程和正常意义上的少年班略有差别,可以理解成扩招。报名者通过初审后(全国通过几千人)参加高考和校考,校考又分初试(筛七百多人)和复试(筛最终结果三百多人),可见初试是比较重要的。今年初试一反常态挪到了高考前的五月初,于是我的准备时间就少了不少,加急补了补课,最后成绩仍然擦线。
复试在高考后的 6.13~14 日,又分现学现考(教师讲解大学知识,然后限时做题)和面试。最后根据初试和复试的总分来划档:A 档可以降一本,B 档可以降 40。当时高考成绩是不知道的,不过复试都拉不开分,所以当时也没什么感觉,考完还去上海玩了玩,权当放松。
最终成绩出来非常快,几天就知道自己挂了,当时我很平静,就是感觉,哦,原来我已经没有任何保送机会了,原来我应该彻底回归文化课了,也要考虑之后学籍怎么解决了。又过了几天高考成绩出了,是 108+137+135+89+87+84=640(新一卷),非常非常出乎意料,因为我模考基本都上不了 600,即使考虑到今年题目简单导致的高分段普遍比往年高,也远远超出平时水平了,尤其是英语和物理。然而由于这几个月学习得十分跳跃,一切只是为了高考提分,所以实际水平远低于这个分数。高考分出来之后又感觉有点可惜,因为按科大在本省的分数线,我拿到 B 档就可以去,不过既然过去,也没有什么可惜的了。
八月份我回归了班级,班主任突然换成了上一级奥赛班的 J 老师(我暂时没什么好简称来区分他和原教练了,就按照「J 教练」和「J 老师」区分吧),这个老师比较社会,我听到的都是一些不太好的风评。不过真正接触了之后,发现也没有想象的那么烂——至少他对请假非常宽容,不像隔壁一直未换的 H 老师那么魔怔,而且平时各方面要求也比较合理。
不过总而言之,原班主任 S 老师和新班主任 J 老师都建议我继续学学奥赛,理由也都是「如果不学,没必要跟着高三这么紧张」。由于高三这边一轮复习也没有开始多少,我对大部分内容也已经有所了解,所以选择了暂时留在这个班,学奥赛到联赛,等下级结课再择机回去。所以也许等我联赛考完,这篇文章就可以彻底完结了,也许我联赛能超常发挥,再冲省队,一切皆有可能。
2024 · 泯然
以下内容为 2024.4.4 更新。
偶然拿到了笔记本,又看到这篇文章,那就来画个真正的句号吧。
上次更新后我身体一直不太好,出现了各种奇怪毛病,心脏的,睡眠的,其实都跟对自己身体过于焦虑有关系。然后也因此,我整个十月十一月竝没有放太大精力给 OI。感谢今年的简单题,我的 NOIP2023 考出了历史最高分 100+100+25+8=233,虽然离队线仍然遥远,但至少没那么拉,我也可以安心退役了。
历史性的是,L 校今年出现了破天荒的一个省队,这不得不算是教练换届后的一个好兆头。
现在我自己已经几乎把 OI 的东西忘干净了,尤其是之前乱点的省选科技树,希望未来有机会能稍微捡一下。但是 zythonc 同学对一些牛逼知识似乎仍然熟稔,也许这就体现了当初学习方式的差异吧。
九省联考数学一经公布,全国哗然。然而认真研究之后,我的结论是极大利好 OIer。首先题量减少,我几乎可以次次提前做完了;其次,19 题作为创新题,一些水平低的老师经常会直接搬运大学数学课本,这正是 OI 所擅长的。迄今为止,我已经见过了费马小定理、Möbius 函数、卷积、指数生成函数,甚至是 codeforces div2 B 难度和风格的 19 题。因此 OIer 可以算是本次高考改革中最风轻云淡的一批了,不知道这算不算教育部给非浙江省份的一点恩惠。
现在我仍然待在高三级部,排名可以稳定在前几十名,已经是我比较满意的成绩了。4 月 11 日以后他们将开始「三轮复习」,即疯狂的考试练习。我毕竟今年无法高考,所以这种魔怔的训练方式自然要逃避。于是我跟 J 老师商定,这之后我停课自习,夯实基础(如前所述,备考中科大时我的策略是提分为王,但想要再达到更高的分数,更要做到基础知识无死角。要知道我 2023 年高考时,语文默写甚至空了 2 分),等下一级上了高三,再择机回去跟进度。很显然,这算是一个难得的假期,弥补了之前跳级带来的空缺。
我对自己目前的表现还是很满意的,况且经过身体的折磨,我渐渐也能看淡一些事情了。接下来几个月的自习,还要加紧锻炼,让身体恢复健康状态。由于此后我将与 OI 彻底分别(ACM 当然不算 OI),因此这篇长文到此也终于可以画上句号了。文章的名称在编辑这一段之前还是「半退役记」,现在他也华丽地变成了「退役记」。
祝我的身体恢复正常,我的文化课稳定提升;祝我遇到的同仁前途光明,帮过我的人尽获福报。感谢大家,感谢我的 OI 生涯。
感想 · 清茶奉上
事实上 OI 的大道理很简单,就是号爸经常教导的打好基础、多练思维、少看题解、别乱点科技树。这几点绝大部分人都可以意识到,只不过我由于认识太晚走入歧途,可以说我 2022 年寒假之前所有体现出的水平都是水分极大的。
打好基础是指多练习代码实现,代码是用来表达思想的工具,必须熟练运用。你可以多刷一些代码实现复杂的模拟题、数据结构题等等,尽量不要看题解,即使看题解也不要翻开代码部分。目标是会的题目能不调试一次通过、面对有错误的代码能肉眼查错。你还需要多观察神仙们的代码,力求码风简洁易懂效率高,我现在的码风虽然仍远不及工程要求(在竞赛中,为效率起见,不建议使用过于工程的码风),但已经比一年前美观多了。
多练思维需要注重总结和思考,每场比赛打完后想一下自己卡到哪里、某道题有没有更优的解法,这一步如果没有天赋,就需要大量的积累。练习思维一定要做稍高于自己水平的题目,比如你 codeforces 2000,就做 2500 以内的,太简单或太难的题目都对思维帮助不大。
少看题解是实现上面两点的必要条件,如果很长时间切不掉一道题再看一下,如果用到了不会的算法就考察 NOI 大纲来决定先学习算法还是扔掉这个题。
别乱点科技树也是很多 OIer 注意不到的一点,号爸不允许学生乱点科技树,省选知识一个不会也可以联赛 300+。乱点科技树带来的危害是减少了巩固当前知识的时间,并且一下塞太多容易忘掉——仅仅一年多过去,我先前学过的省选知识已经忘差不多了。注意一个新算法如果不适合当前水平就果断放弃,不要有「以后反正会用到」的侥幸心理。
以上是训练方法的感想,是极为笼统和浅显的,不过——关于 OI 知识本身,以我的水平也无法给出什么有用的建议,就先不献丑了。最重要的是,如果你曾经不是按此方法训练的,请及时抛弃沉没成本,哪怕要重新放低姿态打基础、把以前走马观花的算法重学一遍,「悟已往之不谏,知来者之可追」!
以下内容为 2023.9.3 更新。
以上关于训练方法的感想,事实上还可以继续补充。
思考本质竝总结,这一块是对上文多练思维的补充。由于我正经学文化课的时间非常少,学过去的内容基本上靠脑子就行,于是我从未注重过思考、整理、总结。而遇到 OI 中的难题时,我不恰当地认为只需要多练即可,忽视了整理总结。但竞赛题目只靠脑子还是有些费劲的,竝且不思考的话,就只会就题论题,形不成方法。然而回学校跟进度学了一个月高中课之后,我才明白思考总结的重要性。因为高考的知识量和思维难度远小于竞赛,所以实践起来会更有成就感。找到感觉后,这个经验就可以套到竞赛上:我开始注意思考每道题更深层次的东西,例如如何从题面的种种信息不断缩小范围得出解法——我以前很少考虑这些。当你整理多了,就可能量变引起质变。如果长期停课的你觉得自己找不到这种感觉,或者觉得自己太浮躁了,不妨回来学习一个月的文化课吧!