OI 给我带来了……
fupazst001 · · 生活·游记
:::epigraph[OI 之于“文化生”]
有时候我就想啊,
如果没有 CSP,我还会认识你吗?
:::
其实我第一次参加真正意义上的 OI 赛事(初赛不算),还是在去年。而那时的赛程表,我至今仍记得(完整版:2024 NOI 系列活动和认证日历)。
| ::cute-table{tuack} | 时间 | 活动 |
|---|---|---|
| 9 月 21 日 | ||
| 10 月 26 日 | ||
| 11 月 30 日 | ||
| (我参加的部分) | < |
但是,如果直接从去年开始讲,就很没意思了,不如从头开始。
:::warning[提示]{open}
只想看
年度戳
2021 年:梦的开始,C++ 入门
你们知道来这里上课的目的吗?
故事要从 2021 年开始讲起。那年 7 月学校组织了一场测试,按照测试的成绩组建了一个社团的兴趣班,名曰 “信息学奥赛培训”。之所以叫兴趣班,是因为当时它免费,不过现在好像要钱了。
在那里,我完成了对信息的入门,也认识了很多有些经验的同学。其中不乏后来发展成的偶像,当然不止是由于这一方面,而具体事件就不在此赘述了,总之很甜。
之所以称作 “偶像”,一方面是第一眼就被他们吸引,另一方面是发自内心地想向他们学习。
那时,我们流传着可能只有我们才知道的梗,比如“嗨,我是 uncle_lu”“小理是个热爱生活的 xx”“P3724”“哎呦,我的屁股”等等。
(此时网络热词参考:数正方体、两只老虎爱跳舞、你叉叉唱日出)
而时间呢,只有半年,主要是在暑假和晚辅的时间,甚至只学到字符串的 strlen 函数,后面的我是真不会。但课程对我有如下影响:
- 码风“优美”,按空格几乎成了习惯。
以前不知道Tab键,都是傻乎乎地先输大括号再删。 - 不会背万能头文件,只会
cstdio(后来知道iostream输入输出更方便)。
对于学校来说,匆匆的过客或许算不上什么,只有最盛大、最重要的那年那场,才会成为不可磨灭的记忆。学生一茬接一茬地过,老师一批又一批地换,学校运作如常。
但对于个人来说,学校的种种活动却给我们增加了锻炼的机会。
2022 年:体验初赛,复赛停摆
2022 年的暑假,我们开始了集训,还是老师放视频。但似乎不像之前那种系统地学,出现的概念都太陌生了:树和图、同余……实在不记得有哪些了。反正对于当时的我来说,这些真的很难理解,甚至我去年都不知道什么是度。
然后就到了
2022.9.18(Sun.)
据资料,这大概是第一次见你校,去考试的,没过。
而且说来也巧,那两年因为疫情,
2023 年:极度充实,但 OI 缺席
那年,
我不想去比赛,主要是能力不足,没信心了。 :::align{right} 2023.9.16 :::
其实一方面,我拖时间,导致老师并没有及时审核完所有步骤,故报名并未成功;另一方面,报名的其他同学都有学习或者上网课的经历,而我几乎没复习,何德何能跟他们“同台竞技”啊!
我们班有两位同学参加这次
那年虽然几乎没碰信息,但我跟偶像(其实都是同班同学)终于有了较频繁的互动,也迎来了我人际交往的高潮。
2024 年:好奇,我几斤几两?
报名
去年,我报名了。9 月初,老师主动联系了我家长,说了些相关事项,拉我们进了信奥群。
说实话,我并没想到仅仅报个名还能训练什么,只是单纯想知道自己水平如何。
第一天,老师给我们一个 124 网站(其实是学校的 OJ,现已弃用),让我们在上面做初赛模拟。而我缺得实在太多了,老师说不懂的可以上 OI Wiki 找,哦。
后面的训练,在校本课、晚自习和周末,基本上是打模拟赛或者自己补题。不过因为我要补课,大都是请假半天上半天。就算在训练,大部分时间应该也在 做作业 (反而更爽)。停课训练也是不申请的,就没想过做竞赛生。
但该说不说,我在这 真正学会并用上 的似乎只有 freopen 。
第一轮(初赛)
2024 年 9 月 21 日,学校刚好安排上午体检。体检完还可以假装志愿者引导考生找考场(因为是在本校考),开心。后面铃声响了,我也进了我的考场。不知何时改成了填涂答题卡,嗯就这样吧。发现上午小朋友真的好多,想起当年的他,他会不会也是这样呢?
下午要先集合,签到了再考试。下午的考试给我发呆的时间就很多了,因为基本看不懂题,只能敲敲抽屉的横杠。考场的空调打得还是 太冷了,老师的通知又要求穿校服,然而只发了短袖……
考完之后,我还去做了志愿。说是志愿,其实就是把食堂的连体桌搬到体育馆。谁能想到,我在这场考试之后竟然还有心情做志愿,哈哈!
几天后,分数和分数线出来。我 J1 过线了,S1 没过线。去找老师,S 组推荐晋级,也算报上了。
比赛篇
CSP-J 2024
10 月 26 日,这天刚好是我一位偶像的生日,祝他生日快乐!
T1,扑克牌(poker)。 我选用字符数组存输入,在线处理,用了一车 if-else,转换后存入 bool 数组(相当于桶)。最后统计桶为空的数量,输出即可。
T2,地图探险(explore)。 我只会模拟,然后就特判边界和障碍物。
T3,小木棍(sticks)。 我还是有兴致做这题的,打表发现好像有 freopen 还被注释掉了。
T4,接龙(chain)。“是否存在一个可能的游戏过程满足任务条件”,存在性问题除了穷举,我没有别的办法。然而我有点晕情况,故放弃。
诸如子序列、图论、动态规划相关的题,只要被我看出来,就必定不会做。
赛时,监考老师还会逐个 检查 FrC 和选手文件夹。其实之前训练时,校内老师就让我们试过了,不过之前还真不知道这个在桌面上默默无闻的东西是干什么用的。校内老师还让我们把 文件大小 记出来,考完及时核对。
- 最终得分:
100+80+0+0=180\text{pt} 。
之前常在课上举例“碳硫磷”时会心一笑,现在竟也成了事实。所谓“临渊羡鱼,不如退而结网”。我最初的小目标,就是与去年的你,在那样的测试中相当;至少这个小目标实现了,尽管目前似乎没什么用。
碳硫磷,即 CSP。然而入门级的奖对于现在的我来说,自然没什么实质性的帮助。
最终,我获得了
CSP-S 2024
T1,决斗(duel)。 先排序,然后浅浅用一个贪心,随便匹配一下吧。
T2,超速检测(detect)。 写了一车代码,还是晕情况,而且跟我之后的物理差不多了(呜呜,物理到底要怎么学啊)。
T3,染色(color)。 方案题,“最大化最终得分”?用了一个桶计数,然后条件求和再除以二,不知道在算什么。
T4,擂台游戏(arena)。 为什么不告诉我“真正的能力值”?还有这异或一车数据的……
另外,如果同时报名 J 组和 S 组,第一轮其实还好,第二轮上午下午 都要面对这电脑,感觉眼睛快瞎掉了,有点吃不消。
下午考完,老师还给我们提供了汉堡和可乐,不知道她是怎么进考点的哈哈。
- 最终得分:
30+0+0+0=30\text{pt} ,S 组没奖。
NOIP 2024
本来我以为,到这里应该已经结束了,我也圆梦了,结果并没有。
老师:我们学校,所有高中生都进到
\text{NOIP} 里了哦,好好练吧。 :::align{right} 2024.11.9 :::
啊,怎么还有?这场倒是免费的,听说还能写到阳光高考里。不过这推荐名额是这么用的吗???
这天是 2024 年 11 月 30 日,11 月的最后一天,考点跟
T1,编辑字符串(edit)。 回看我的代码:
if (n <= 10)
for(int m=1;m<n-1;m++)
for(int i=1;i<=n-m;i++)
//……
else
for(int i=1;i<n;i++)
//……
for(int i=n;i>1;i--)
//……
考场代码,改好缩进是这样的,看来当时是很无助了。朴素算法,可能实在太想要这部分分了吧。
T2,遗失的赋值(assign)。 假装发现公式,如果存在
T3,树的遍历(traverse)。 讲个笑话,cout << rand()%mod << endl;。
T4,树上查询(query)。 秘制小代码:
int dep(int u) { return u-1; }
int LCA(int l, int r) { return l*r; }
// 主程序内
for(int i=k;i<=r-l+1;i++)
ans = max(ans, dep(LCA(l, l+k)));
写得还真像那么回事。
考完同样发了汉堡,没想到竟然还有高三生请假来考。
- 最终得分:
40+0+0+0=40\text{pt} 。
而十一月底,最近的一次,跟那些人相比,实在实力悬殊,这无可否认,但你也比我高了足足几十分哪!可别小看这点差距,我只是“有意栽花花不发,无心插柳柳成荫”;而你不一样,你有投入,自然有回报,我是难以望其项背的。你去年说:“我觉得你上你也行。”只是比较简单吧。
最终,我获得了 (竟然有奖)。
故事还在继续……
对“第一次”的总结
比赛的事就告一段落了,说实话,能参加这种活动真的很幸运,也算是对我 2021 年初学信息的成果验收吧(因为除此之外,比赛前我没补进任何知识点)。
还能再和之前的一位同学一起训练半年,真的很难得,也很令我感动 (各自做作业真的很爽)。他好厉害,获得了
去年 12 月,校本课没了,而后来在晚自习时我也渐渐不参加训练了。
那么,还要继续吗?
对于你来说,这到底是爱好还是技能呢?爱好是感兴趣并愿意为之坚持投入的,而技能则是拥有的能力,或深或浅。比方说,你爱吃辣和你会吃辣,显然不同。所以,你还有当初的激情和勇气深耕下去吗?
平心而论,我真就只是玩玩,从来不打算靠这个吃饭的。
后来,我偶然发现了一本书,叫 《算法竞赛进阶指南》,我在 读秀 上看完了全书。虽然刚开始一知半解,但这种“输入”总归是有用的。我对这些概念渐渐有了初步的了解,有时甚至会跟着书打一些模板代码 (虽然背不下来)。不管怎样,现在听到这些名词时,我不会再觉得陌生,虽然未必会实操。
我也尝试做
从年初到现在,尽管结果常常不尽人意,但我依然会参加周末训练。
CSP-S 2025
今年是 2025 年,我没报 J 组,S 组第一轮 终于过线了,可以直接晋级第二轮了。
这天是 11 月 1 日,11 月的第一天,考点跟 (如果有别的活动当我没说)。这里竞赛氛围浓厚,前不久的牌子还未拆,当时热闹的景象历历在目,但那些人也早已不在了,只剩下初出茅庐的我们。
T1,社团招新(club)。 感觉题目出得挺应景的,最近正是部门、社团纳新的好时候,又是部门面试的时候,哈哈。看到特殊性质 C,我的第一反应是,既然是独立均匀随机生成,那么每个新成员应该都能被分配到满意度最高的地方,打完后那个样例也确实过了。再看特殊性质 A,显然排完序把剩下一半满意度不高的调剂掉即可;特殊性质 B 就已经很晕逻辑了,感觉要动规,不会。顺便打了一下
T2,道路修复(road)。 看了一下,
T3,谐音替换(replace)。 大概看懂题意了,但是求方案数的问题还是不太会。既然有输出四个
T4,员工招聘(employ)。 注意到,要是
考完发了汉堡和冰红茶, 下午还看到的牌子已经褪去,好像什么也没遗留下来;我们像现在这么学习啊,竞赛啊,到底又剩了些什么呢?我不知道,但这背后的意义似乎也没那么重要了。也许除了自己,大概没什么人会好奇吧。
(以上从“这天是”一段开始,为 2025 年 11 月初补充,其余部分于国庆假期完成)
继续加油吧!信竞也是,文化课也是,其他方面也是。
:::info[注明]{open} 本文包括小标题在内,没有使用任何 AI 工具进行辅助。全部是我自己一个字一个字码的。 :::