Roshin 的算法竞赛回忆录(上)
前言
本文之所以叫回忆录,确实是离退役记还有一段距离。(写完了来更,好像前半部分和算法竞赛关系不大啊!)
今天 (2022.12.18 日),在 Codeforces 上
刚刚结束的 Polynomial Round 2022 (Div. 1 + Div. 2) 完成了
我算法竞赛生涯的倒数第二个愿望——成为 Candidate Master
(\(\color{purple}{紫名}\))。最后一个愿望是有一场现场赛的体验,也是我暂时不愿从算法竞赛中退役的一个重要原因。
成为紫名(虽然耻辱上紫刚好擦线)也成了我写下此文的最大动力。
现在就正式开启我的算法竞赛回忆录吧!显然根据我的文学水平,这必然是一个流水账,不喜勿喷hhh。
大学前
不妨先浅谈一下自己的身世,看起来篇幅有点长,但只想说明我真的不是聪明的那一类人(,显然可以直接跳过:
小学
- 出生在普通家庭,小学上学写完作业,放学就到处玩包括进黑网吧之类的,那是我人生的一大快乐事情,至于奥数什么的,当时问过我一个学奥数的同学,举例一个奥数题,当时给我说了一个划船的问题(大概就是船行驶的速度和水流顺逆向有关),我随口猜了一下他就说是对的,从那之后我就更没有所谓学习奥数的心思,感觉也就那样吧!
显然我小学完全没有接触竞赛。
要说唯一的和算竞有关的东西,我承认,打字速度确实有点快hh(区里的一等奖)。
初中
小学毕业,以超录取线 1 分的成绩考入了我初中母校的普通班。记得当时的数学考试题,我闻所未闻,简单的求和公式也没见过,
初一入学数学 150 分就干了个 70 几。只记得当时我的数学老师对我的评价是 基础太差了 然后就被请了学生生涯的唯一一次家长。
初中的时候依然是在学校疯狂赶作业,回家从不写作业,狂玩,大概口胡一下 steam 的游玩时长,至少有 2000 小时吧。
不过学习成绩还是有所进步,到了初三就在班上前几名了。(大概还是班型一般,初中课内确实不难吧,不过我的语文是真的难,但凡正常点完全可以冲刺四七九),
显然我初中完全没有接触竞赛。
高中
中考以 596 分(数学 134) 和自主招生一个档次的水平考入了高中部的直升 B 班。当然进了高中也是被吊打,第一次考试就考了 30 多名(班级中下游的水平)。
班里很多同学是初中实验班的,甚至很多也互相认识,当时第一次听说 “刷题” 这个概念,班里没有初中同学,刚上高一的时候感觉非常的不舒服,环境陌生,成绩不理想,但当时我似乎有个这么一个想法,我初中进来也是这样的,那我高中是不是也能翻盘呢?
答案是 YES,高一经过一段迷茫,成绩爬到了 10 多名的样子。高二慢慢开始刷题总结,到了高三一诊考出了并列班级第一,年级 30+ 的惊天好成绩(类比一下就是这个成绩我可能在泥电上学了)!(值得一提的是,那个时候和倩姐刚在一起 2、3 个月,现在都 3 年啦!)
后面就是所有大学 20 级学生的痛苦,新冠疫情。记得当时的寒假我完成了放假前所有预期的计划包括作业和刷题。但突如起来的疫情,直接让我呆滞了快 1 个月。
关于疫情线上上课时期,我最有印象的还是在某次月考后,我的排名依然没有进入班级前 10,考的很差。当时班主任在家长会上点名批评了我,当时感觉很不爽,一是因为线上考试因素过多,二是因为自己当时确实很迷茫。我记得那天我发了一个微博,
/摊手,我的微博头像和知乎头像都是 curry 摊手的表情,至今我也没更换,我认为那代表了我的一种人生态度,你不认同又怎么样,我觉得我ok就行了!
大概是以这样一种姿态,记得从那之后,我有两三周时间,在下午 5 点网课结束后就会先刷完一套理综全国真卷,再开始写作业,有时写完作业已经接近 12 点了。后来线下复学确实领先了其他人很多,别人还在做真卷的时候,我已经解决了很多知识盲点了。
线下复课后的开学联考,我重回了班级前列,记得是班级第二的样子,被第一吊打了(一诊并列确实是运气好)。高三后期还是按部就班的结束了。
高考成绩 (数学138,英语141)显然我的数学水平,是以稳为住,在高考前2、3个月前,我的数学从初中开始就没上过 140 (非常迫真)。可以看出来我的智力确实不高。
显然我高中完全没有接触竞赛。 当时还以为信息竞赛是考查以下哪些设备是计算机的输入设备之类的,当时私以为是这样的。
大一
大一上
拿到高考分后,去外省学校看了一圈发现没有合适的,SCU 的计算机似乎很契合我的分数,好像计算机也不错(一大原因是因为我觉得我自己打字贼快,很有基础!),就来读了,赚不赚钱只是一个很小的因素。
你以为我的算竞生涯大一就开始了?好像并不是的hh。
还记得刚入学还没正式行课前,有幸参加了 SCUACM 的迎新宣讲会,还记得当时魏学长表演了 C++ 写随机数代码,那是我第一次亲眼见到计算机学生编程是什么样子。
当时的宣传 ppt 上还挂了集训队学长外出比赛公费旅游的图片,当时来说确实是很有吸引力,但它始终是一个竞赛,对于大多数像我这样的普通人来说,竞赛只能是梦里的事情。
后来室友 ljq 给我安利了洛谷,2020.9.24 日注册,记得当时第一天看见了 P1000 超级玛丽 这题,私以为是要写一个超级玛丽游戏,当时觉得草算法题好难(后来才知道就是printf),然后 3 个月后我交上了 4 发 CE。
你以为我学编程很轻松吗?并不是!
我记得当时左老师布置了一道约瑟夫环,要求用链表实现,整个周六翻遍了全网可以学习链表的资料,从早看到晚,最后还是照着教材上的代码,周天才提交通过。并且在上 C 语言课的时候,隔壁寝室参加过 zjoi 普及组的同学几个小时不到写完的,我大概至少写 20 小时才能全部 AC(甚至好几周没有写完,因为不会)
无论如何,大一上左老师的作业,确实让我很好的入门,但也深深地让我觉得算法题是真难,竞赛依然不敢想。甚至当年的新生赛我也没参加,记得新生赛前期我才想起了有 SCUACM 这个东西,然后翻出来了公众号(问就是抽奖才关注的)里的群号加了群。
大一下
因为我向来就是一个善于规划自己未来的人,都说算法很重要,我就自己找资料学,寒假学了 Python,当时还跟着 B 站某个教程学着用 Python 写常见的排序算法(快排,堆排,后来学到希尔排序就放弃了)。
后来一个偶然的机会,牛神告诉我算法还是要系统学的舒服,于是跟着他在 AcWing 上买了算法基础课,当时唯一的感受是,讲的真不错,感觉算法题没有那么的难了!(实际并不是,依然很难)
后来和 yyh 聊天,知道了 codeforces 这个东西,但当时对我来说英文题目 + 竞赛选手才参加的东西对我来说还是很有距离感,在 yyh 的鼓励下我注册了 cf 账号,并参加了我的 “第一场” cf round ()
事实证明,水平堪忧,之后 yyh 给了我建议,应当先学习基础算法再来打比赛,后来我就滚去看课了。
5 月份的样子,当时刚学基础课不满1个月的我没敢报名校赛(拉了牛神,他说他准备六级不来打,不然的话有机会混个铜奖,因为真的简单,加个铜奖大一我就能综三多拿500快了wuwu)。为了混志愿时长,报名了校赛志愿者(实际现在还没到账)。
大一的校赛,yyh 拿下了第一名(记得当时和他不是很熟,只觉得他非常的厉害,现在也是)。在校赛的滚榜仪式上,全场的氛围,是算法竞赛第一次触动我的心灵。