囫囵吞桃的个人博客 Home

算法竞赛——未竟的夙愿

#随笔

![Pasted image 20260213043417.png](/api/assets/附件/Pasted image 20260213043417.png?w=1344&h=900)

[!NOTE] 本文是一篇描述了我参与信息学或算法竞赛的经历,以及一些感悟的散文,没有任何技术营养。

初识信息学竞赛

我最早了解到信息学竞赛是在高一。学校新入职了一位曾经在我们当地最好的初中组织培训学生参加科创比赛的信息技术老师。这位老师此前没有带过算法竞赛,我们学校此前也没有过组织学生参加算法竞赛的经历。但是他想在他的人生、在我们学校的校史开创“信息学竞赛培训”的先例,于是打算在我们学校开设一个竞赛班。

这个竞赛班是作为学校社团开设的,计划在全校公开招收学生的同时,邀请全年级成绩较好的学生参加。当时,由于我在初中时有过参与科创类比赛的经历,同时成绩在学校来说尚可,在学校孙主任的介绍下,这位老师联系到了我。经过多次谈话,最终我决定参与竞赛班。

每个工作日在下午的两节活动课时教授算法。第一次课,教室里坐满了人,来了几十个学生,其中不乏当时文化课成绩排在前面的佼佼者。在第一次课上老师让我们尝试着做一份NOIP的初试考题,看看我们的水平如何。到了第二次课,教室里加上我就只来了两个人。后来我问一位同学为什么没来,他告诉我,当时学校没明确通知好第二次课的时间也是社团课时间,于是他就打球去了。

NOIP的初试考题,题型和信息学竞赛一致。在纸质试卷上作答,有选择、填空、大题等题型。选择填空题考查计算机基础知识大题主要是阅读程序,写出输出,修改错误,补充程序等。

在日常的课上,老师主要给我们教C++的基础语法,但没涉及类和STL容器。学的内容基本上就是带有cin和cout的C语言。起初的学习我还感到不是很难,直到后来老师开始讲算法,讲到冒泡排序,我开始第一次明显感到吃力了。

参加比赛

我第一次参加的比赛是在高二。

当时我们一共四个人,报名参加了CSP。当时老师为了增大我们拿奖的机会,让我们同时报了CSP-J和CSP-S。我们上午和高中生一起考CSP-S,下午就和初中生一起考CSP-J。下午监考员认出我们来了,本身作为民办学校的学生我们就多少有点“自卑”,被点出来后,我们更加尴尬。

CSP流程是先考笔试初赛,形式和NOIP的初试类似。通过初试后才是上机用OJ复试。等到初赛成绩公布,我们四人中没一人及格。我的两场考试成绩分别是三十几和四十几分。

这样的结果并不让我意外。一方面,我计算机基础知识薄弱。老师虽然让我们自行看书学习,但我几乎没有花时间去投入看;另一个原因是当时的我阅读程序有很大的困难。事实上,直到大一,我的程序阅读能力才在“被迫帮同学看 C 语言作业”的过程中慢慢有所提升。

这次失败让我的信心大受打击。之后每次上课,老师不在的时候我们就自己偷偷玩电脑。老师也对我们失去了期待,很多次社团活动课他也干脆没有出现。后面,或许是为了让我们这个“竞赛班”的成果没这么难看,我们被安排参加了一个很水的“人工智能”比赛,最后我得了“全国二等奖”。

实际上,这个奖项没有任何含金量。参加者多数是小学生,只需要把特定的程序背下来,针对不同的情况改改,就能取得一定成绩。

大学生涯

后来,我们都没有像老师设想的那样以竞赛生的身份考入大学。

在大学期间,我侥幸转专业到计算机,并得以继续学习编程。对大学生而言,偏向算法程序设计的算法竞赛取代了全面考察计算机能力的信息学竞赛。但我缺乏长期准备算法竞赛的规划,也没有坚持每天刷题的毅力,再加上自身水平有限,我没有在算法竞赛方面取得过什么好成绩。所幸,我们学校计算机整体水平不算高,很少有算法竞赛方面的人才,因此在一些很水的校内的比赛中我也勉强能拿奖。

到目前为止(大三秋季学期期末,2025年12月),我参加了两次蓝桥杯校赛(一次校赛一等奖),两次蓝桥杯省赛(一次三等奖、一次二等奖),一次CCF-CSP(只做了前两题送分题,还犯了低级错误没拿满分)。

高中学习信息学竞赛的经历也并非全无用处,这让我在大学学习程序设计课程时能比其他同学学得快,让我在程序设计A和程序设计II拿到A+成绩。但也仅此而已。在班上,我仍算不上突出的学生。

我们学校有一位年级低我一届的Y同学,似乎在高中有过参加算法竞赛集训的经历。很早就加入了我校ICPC校队——事实上,我甚至在大三之前不知道学校还有这么一个队伍。后来即使在一次课上老师告知了,我也不敢报名参加。Y同学代表学校参加了各类比赛。在每一次蓝桥杯校赛中,都能看到他一骑绝尘的分数。

每当我想到Y同学,或是看到网上那些真正的OIer们,又或者是看到那些大学仍在致力于参加算法竞赛的学生们,心中总会生出一种难以消散的羡慕。