2023 NOIP 游记 & OI 生涯总结

发布时间 2023-11-18 21:42:48作者: MisterRabbit

-1.序言

观前提示:

  • 本文大部分篇幅在作者情绪较激动时写成,所以可能会出现一些言语偏激。

  • 长长长文警告。

  • 文中大部分人名会用 X老师 或者英文缩写代替。

作者语文水平不高,所以应该写不出太好的鲜花,这篇文章仅代表我对自己一些经历的总结和看法。

不好取题目所以不取了。

0

我的破木箱
装满枯萎的花
放不下
光与壤
和新鲜的愿望

我几乎是哭着走出的考场。

身边的嘈杂似乎已经与我无关,题目的 solution 似乎已经没有那么重要,其他人的分数孰高孰低似乎都与我无关了,我脑子里只有一个念头:我终于证明了自己。

我等这一刻,等了 6 年。

1

总有人间一两风,填我十万八千梦

我从6年级寒假开始接触OI,当时我只觉得代码很神奇,能完成很多我做不到的事情,所以我就被忽悠着开始学信息。仍记得当时上的第一节课是 int 数组,但是我当时连何为 .cpp 都不知道,我印象最深的是我还在草稿纸上写下了运行程序最基本的框架:

#include<bits/stdc++.h>
using namespace std;
int main(){


    return 0;
}

当时,我甚至很认真地记下 return 0 前有多少空格,回想我的那一份认真,突然有一种嘲笑现在的自己的想法。

现在分享一下我初学时的趣事,刚学循环,在老师要求倒序输出一个数组的时候,我写出了如下 4 份代码(码风是笔者创作这篇文章时的主要码风):

// 1
for (int i = 1; i <= n; ++i) cout << a[i] << endl;

// 2
for (int i = 1; i <= n; --i) cout << a[i] << endl;

// 3
for (int i = n; i >= 1; ++i) cout << a[i] << endl;

// 4
for (int i = n; i >= 1; --i) cout << a[i] << endl;

虽然看上去确实很弱智,但当时我没有最基本的 c++ 知识,所以我做对题全靠把两种可能排列组合起来。

然后我参加了人生中第一次 CSP,我不太记得结果,但应该很惨。

不过我可能低估了我当时的热情,这就是我 OI 生涯的开端。

2

竹杖芒鞋轻胜马,谁怕,一蓑烟雨任平生

我似乎和信息竞赛命里相冲。

初一我踩着初赛的线进了复赛,第一次参加机试大赛,当时我只学完了字符串基础相关知识和一些简单算法,我用了 10min 过了 T1(感兴趣的可以看看19年CSP-J),信心满满,结果 T2 做为一个小模拟把我卡了,我估计没写出来的原因大概是当时确实没什么写题经历,所以也不太会挑错,当时我记得自己第一个样例没过,然后似乎无事可做了1h,就看 T3 T4 去了。结果 T3 T4 都是我没见过的算法(现在看来,只是一个最简单的背包和灵活一点的最短路,顺便一提,23年NOIP前我被这道题卡了1h,警钟长鸣)。于是我显而易见的拿了2=,这就是我第一次参加 CSP。

初二我又成功踩了 S 组的线进了复赛,当时我觉得我的发展一番风顺(现在居然有人初一就拿 S 1= 了/xia),可那一年,缺成了我 OI 生涯的至暗时刻。当时我并不懂头文件和函数之类的关系,更不懂 WindowsLinux 系统之间个差异,而且也不知道 CCF 用 Linux 跑程序,当时我用的头文件是 #include <iostream>,然后出考场,我才知道 freopenstdio 库中。那一年,我本来是全校唯一一个冲出来 J 组 T2 和 S 组 T2 的,结果我相当于是葬送了自己的两个 1=,因为我所有的程序全 CE 了,不过我当时安慰自己,自己才初二,还有机会。

初三来了 CSNY,逐渐看到了自己文化课上的差距,于是开始努力搞文化,OI 只是在尽可能保持自己的手感,高三那年只拿了 J 组 1=,S 组 T1 不会,警钟长鸣。

3

当丧钟鸣响之时,人们才知夜晚降临

我是初升高暑假来的 YL。

来YL第一节课,我学的是 原根和二次剩余

当时的我是个什么情况呢,我大概是只会写最基础的线段树,会一些简单 DP 的水平,所以那个暑假上的省选知识点,我一个都没听懂。

我浪费了我最好的一个暑假。

我学了一个暑假我可能根本用不上的东西,而我的基础丢的一干二净。

下附一张我那个暑假的一张题单截图:

虽然有的 tag 看上去很简单,但是题全是 蓝+ 级别的。

然后我就边补基础边做难题,然而大部分题sol可能都是题解给的,算不上刷题量。

事实上上了高中之后我几乎没见过上面的算法,所以我觉得整个暑假题也没怎么刷,感觉就很浪费时间。

同机房巨佬 hzk 修了一个暑假电脑,整天忙着帮别人装双系统。

成功率不是很高,大家不要找他。

另:以下是他自己说的

开玩笑,还是很有实力的。

暑假结束,YL 加入了一个什么抽象联考组织,叫 OIFC(OI Football Club)。

然后我就见到了人类少有的罕见的攻击力,不过确实,如果搬题都能搬到答辩题,那我确实无话可说。

把 arc 的 D 放 T1,结束了我对顺序开题的一切幻想。

不过就客观上而言,联考对我的帮助应该是更大的。我见到了更多考试中可能出现的题目和算法,同时给自己的补差也找到了一定的方向,大概就是在联考的时候我发现,题目难度并不是靠越来越难的算法,而是有越来越抽象的思维。

于是我加强了对自己思维的补充,还是有一定成效。

但 S 和 NOIP,连着给了我两次重击(Year:2022)。

S,T1没看出来断环为链,T2,没看出来分类讨论,T3,根本没看,暴力分一点没有,T4,暴力分挂了。

我几乎把不该犯的错误全部犯了一遍。

T1,即使写纯暴力也有很高的分,然后在判断联通性的时候,我在限制步数的情况下用 dfs,结果半天没调整过来。T3,到最后都一眼题没看,其实才在考试前我还帮忙出了一道内向基环树的题,写的题面造的数据。

2=

不过我还是对自己抱有相当的信心,觉得自己 NOIP 一定不会再犯错。

T1,样例超级水,我没写对拍,挂到40。

T2,我以为是人均题,开冲2h,最后暴力都没写。

T3,忘记了怎么判边双,没写暴力。

T4,最低档暴力,8

一般人可能看到这个分数,可能选择直接退组了吧。

但我真的还对OI满怀希望。

随之而来的是疫情的狂潮,在家里歇了两个月。

就像我的化学老师说的那样:“在家上网课就是上网。”在家里两个月本来是好好补文化的时间,然而我的知识接收效率低的有些离谱。

最终导致啥也没干,好像在家里睡了两个月。

寒假回来继续集训,请了 LK,HH,XZY 等一众人来讲课。

我反正基本只听懂了一般,但还是有所收获。

我觉得最好理解的还是 CXY 的课,虽然只讲了一节课,讲的分治,当时基本听懂了大部分东西。

春季就一直在做别的省的省选,大致开始对题目开始有了些把握和题感。

其实 NOIP 之后有两次外出学习的机会,但是因为太垃圾,一次都没选上。

冲省选!

现在看来,自己在做某个难度以上的题目时还是有一定瓶颈,可能是心里作用吧,毕竟我赛时从来没有冲出过一道很难的题。

省选之后选了几个参加全国赛的人外出学习,而上文提到的 hzk 大佬选择留在 YL,他的选择相当正确,因为线下集训不但要面临屎题,还要在人生地不熟的夹缝中生存。

(tips:我们机房全是 i 人)

当时和他交流的很多,我们从 OI 聊到未来,对我的做题方法和做题思路还是带来的比较大的改变。

(他也没有摆脱集训的命运,NOI前被拉到重庆去了,默哀)

4

欲买桂花同载酒,终不似,少年游

考完省选,暑假集训到一半,被学校从信息组劝退了,理由是去年 NOIP 没拿到 1=。

其实我是很不服气的,毕竟 NOIP 11 月份,你凭啥用当时的成绩否定我将近一年的努力。

同时和我一起刷下来的还有三个,我在组里确实是在一个最末尾的位置,毕竟大家都从初二左右开始训强度了,而我还在摆烂。

于是成为了老年半在役选手,每周花两个晚自习和周末一天在机房。(YL每周为什么只有一天假/fn)

训练强度再也没有上去,我只知道有什么 NOIP 十连和 zroj,但我都没参加,不过似乎有两点没变,dx的攻击性和题目的答辩程度。

有的时候晚上只会看一道很套路的题,然后去看 hzk 做的题,跟他讨论一些做题的方法。

如果说我的OI有很大的进步的话,那么k老师做出的贡献不可磨灭吧。

游了两个月,CSP

今年真的好多人参加 CSP 啊。

稳定做出 T1,T2想冲个更高分做法,发现 DP 的转移是假的,于是写了个最普通的暴力。

问题就出在这里。

可能是因为赛前做题做得太少的原因,我忽略了 STL 的 size 都是 unsigned int 类型,写暴力的时候我写了个 size()-1,于是调不出来,当场寄掉。

T4,用到了 exchange argument,这个东西我考前1d刚看完,在考场上转头就忘,T4也啥都没冲出来,继续寄。

伏笔了,暴力打满就1=,今年好多小学生和初中生当炮灰。

这时我真的开始 emo 了,怀疑自己为什么做不出来题。

浑浑噩噩的过了两个星期。

5

你要一直走,走到灯火通明处。