再见,OI

碎碎念

春去秋来又一年,上一年本以为我的OI生涯已经落下帷幕,却还是跌跌撞撞躲躲藏藏又继续了一年。

通过一个偶然的机会,我接触到了OI这个对当时的我来说是新概念的东西。

第一次被OI的魅力所吸引,是看了hzwer的文章。那是我对OI心底一份从心的向往。

在被吸引的同时,我也看到了很多很多没能取得理想成绩被迫退役的选手经历,这是我对OI必须的现实的思考。

再三权衡之下,我还是选择了加入。当年的我年少轻狂,大抵还是没有想清楚这份”生死状”的意义。

三年小记

NOIP2017,初赛退役,当时只考了20+。该错的不该错的都错了。当时也没觉得是个回事吧。

当时江一的竞赛氛围还不大好,高二高三好像只有两个学长去了。考完回来拿题目一看,哎,还是挺有信心的嘛。

高二那边后来从机器人和尖子班又调了一批人过来,一个可以被称为“班”的集体逐渐成形。

和他们一起训练,中午不午休在机房做题,偶尔翘掉晚修过去训练,AC的快感很好,但逐渐让我迷失其中。

切了一道又一道题目,沉迷于AC的快感,但背后的算法却总有些得过且过的感觉。雾里探花,似是而非。

一年很长,一年也很短,高二的学长高三了,我们高二了,听说高一来了很强的两个大佬,免不了感慨一番。

NOIP2018,一次正式的出征经历。我当时认为,拿个奖,就可以安心回去学文化课了。

今日长缨在手,何时缚住苍龙?

一年的磨练,满载着信心而去,背负着失望而归。

对自己的失望,对未来的怀疑,对所在环境的厌弃,在赛后好一段时间一直困扰着我。

高二那一年,我想过三次退役。但非常感谢我的教练和朋友,他们让我坚持下来。落下的文化课也有了一些起色。

虽然去机房的机会少了很多很多,但是那一年在机房里是最充实的吧。写题,模拟赛,等等等等…

偶尔看看某高三学长拿着一堆模拟卷过来机房做题,免不了去凑凑热闹,刷刷写两下,送上AK文化课的祝福。

这一年还发生了很多事情,比如JMYZ Online Judge建起来了,学校有了自己的在线评测系统,偶尔在上面开场模拟赛,请大家一起来AK。竞赛氛围开始变得浓厚,请了别的讲师过来上课,尝试和爱培优进行合作,公费报销去清北学堂学习。

在上一年想过却不能实现的事情,逐渐变成现实向我们走来。

NOIP2019,Day1结束后,我正在酒店里敲着这样一篇退役游记,生怕最后这份珍贵的OI情感被纷杂高速的高三生活冲去再也找不回来。距离高考还有203天,我需要,或者说我必须进步。

还有一天没有考,不过估计最多省二了,省一是很难的了。说起来这是我最佛系的一年,初赛还是被补录进去的…

这之后大抵就会像一个普通的高三学生一样,在教室里写着作业,忍着教室里某些同学的窃窃私语,享受征服一道又一道高考题的快感,在一场接一场的考试中被挟带着前进,随波逐流,直到高考。

但是我又不完全是一个普通的高三学生。这段OI的经历,给我带来了很多很多不一样的经历。如果没有这段经历,大抵我会是在宿舍里聊聊八卦,为完成作业疲于奔命,最后终于发现自己将踏上考场的最一般的学生吧。

因为OI,我认识了很多很多人,学霸担当清华姚班陈立杰,北大黄哲威,可爱的Candy?,还有翻唱《膜你抄》的Menci,还有我们学校很多神犇。

因为OI,我去杭州外出学习,去广州深入交流,书本是静止的回忆,脚踏实地才是最好的教科书。

还是因为OI,我被虐的很惨,被外省大佬虐,被群内大佬虐,还被参加百度的程序设计比赛被小学生虐。虐着虐着,我才知道,起跑线的差距很大,同时我也知道,在合理利用如今丰富的资源情况下,这种差距能够被后天奋力弥补90%,还有10%就是我们要仰望的神仙了。名校不收普通人,如果你想进名校,就得变得不那么普通。

这些人或事拓展了我的视野,让我明白,一中之外的世界,很大很大…

这样的经历,往往能给我看待问题时一种不同的视角,在对付事情时总会有种莫名的自信。从以前讲台上讲两句话都困难,变得能够Carry全场把控节奏,自信从容地讲述自己的观点。这份能力与自信,好像也与OI脱不了干系。

如果非要说三年OI值不值,我认为是很值得的。三年文化课,少了如今的这份心态,怕是很难取得较好的成绩。但有了如今的这份心态和精神力,追赶,更准确的说是追赶身边的人,或者超越自身,我认为是不难的。

经验总结

三年OI,踩的坑不少,弯弯曲曲终究走到了现在。大概把方法坑点总结总结吧。

  1. 平时训练时,推荐用文档写一份在OI中曾犯的错误。

【示例】

int不要随便乘,一定要注意数据范围,算着算着就溢出了。

我曾经这样计算平面上点对的距离($0 \leq |x_i|, y_i| \leq 10^9$):

1
2
3
double calc(int x1, int y1, int x2, int y2){
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}

但是WA了六点,后面想了想,其实应该这样子:

1
2
3
4
double calc(int x1, int y1, int x2, int y2){
return sqrt(1LL*(x1-x2)*(x1-x2)+1LL*(y1-y2)*(y1-y2));
}
//其中1LL的作用是把int转为long long,这样子乘起来就不会溢出了

  1. 不要局限于AC的快感,平时算法实现要摆脱雾里探花,要写的明明白白,边界处理清清楚楚。

    功夫在平时,AC数不能说明实力的高低,考场见真章。

    珍惜每一次模拟赛,这对考场实操和心态都很有帮助。

  2. 考场做题,容易题一定不能失分,千万别被隔壁同学影响。

我在NOIP2018的时候,因为Day1T1交了个错误的贪心,直接省二→省四了。回来后免不了被班主任各种劝导。

所以考场上最重要最关键的就是,容易分一定要拿到,想靠难题来拉分几乎是不可能的。

考场上你可能会看到别人开个扫雷或者蜘蛛纸牌什么的,还很可能别人年纪比你小很多,不要慌,稳住自己就是一种胜利。回想一下,18年我可能就是太慌了,痛失“$2/5$个梁韬”

(作者注:一个梁韬代表250分,是来源于一次模拟赛的梗)

这回真的退役了呢。

夕阳已经落下,新一轮朝日即将升起,喷薄欲出,带来新的活力。

送一段《膜你抄》的歌词给大家:

如果标算太难请坚定信念,

不如回头再看一眼题面,

以那暴力模拟向正解吊唁。