一只流浪猫的 OI 之旅 3(更新至 7.31)

· · 休闲·娱乐

30 选拔前夜

晚上,默默得知明天早上要 6:20 起床,信息学的同学要提前坐学校的大巴前往 SM 中学考试。那天晚上,默默辗转反侧,难以入眠:我真的可以吗?

时间不容他思考。晚上 10 点,他还是不小心睡着了。他居然梦到了神仙。

神仙:默默啊,明天的选拔很重要啊。

默默:老神仙,我知道,我想问个问题:我的能力和智力会不会根据形态而变化?

神仙:你已经成长了,即使是变成猫,能力和智力也会保持人的水平。

默默:我明白了。那,我能进冬令营吗?我能进 SM 中学吗?

神仙:看你的造化……天机不可泄露,今天就说到这儿吧。记住,信息学的主旨是学生要平衡信息学和文化课啊……

默默:那如果我进了 SM,RFK、vvv、班主任的关系对我来说重要吗?

神仙:哈哈哈,当然重要,无论你在哪间学校,这关系都很重要。你还应该知道,做事不要越界,不然你的信息学前途尽毁,你还是 vvv 发现你前的小野猫了哟……

“起床。你们今天要去 0.5+5.5 的快点,迟到就没机会啦。再等一年半啊!”默默刚想追问细节,老师就进来叫人起床了。

31 SM 考场

早上在一楼的考场考语文和英语。许多人认为,OI 里的许多东西都用不上。

考场由许多张黄色的三人长桌组成,两人的距离还算长,可是连时钟和铃声也没有。语文卷子传了下来,默默看了一眼阅读,是一篇叫《花开花落四合院》的记叙文。作文是关于科技的想象文,默默平时很感兴趣。

时间紧迫,没有人能做完卷子。默默根据贪心算法中的贪心策略,每道题都是只骗了 2 \sim 3 分就跑了,还有 50 分钟留给作文。默默套入了许多计算机科学等的内容,文章诚然有了一股科幻味。写完作文回头看前面,一整面答题卡只写了十行左右和两道选择题。

“停止考试”一个监考老师说。

英语考试也不算难。默默心想:“每篇文章都 O(n) 去读太慢了,不如用随机化算法(随便到处乱瞄)查找关键单词。”这样一来,还真顺利做完了。作文不是传统的三段式,感觉非常反套路。

“考虑 DFS,枚举每句话写完后的下一句话,形成一棵搜索树。时间复杂度为 (3^n),其中 n \le 20,可以运用启发式搜索和可行性剪枝优化。”按照这份思路,作文写了 14 行,字数够了。

这算是一次成功的考试。下午就要考 OI 了,他只在中午和同学们玩了一下石子。默默期待着下午也考好进入冬令营,甚至在冬令营好好表现进入 SM 中学。

下午到了,机房在四楼,同学们一个个通过老师的安检进入考场。

开始考试,默默先看了一眼题目,感觉有难度。T2 最引人注目,像是蓝题数学题。在草稿纸上推了一下式子,原来是二级等差数列求和,是只“纸老虎”。“太好了,做出来一道题。”默默心想。

T4 是一道树上问题。默默只想到了 DFS,没想到别的。他与各种边界条件作斗争,调了好久,才勉强通过样例。T4 只有暴力代码了。

T3 是一道迷宫问题。默默尝试用 BFS 解决。看到 n \le 2000,还要存储如此多的字符串,他就把代码当暴力交了,没想别的。

T1 看上去比较正常,应该是绿题,可是默默到最后也只是打了个二三十分的暴力离场。

到了一楼,RFK 早就等在下面了。同学们七嘴八舌地讨论题目,有同学 T3 也打了 BFS,还有的说 T4 是树链剖分。T2 的做法大家都和默默一样,但是大家对 Linux 能不能用 __int128 做出了争论。

回到学校已是 18:30,晚修要开始了。这不寻常的一天结束了。

32 期末考试

期末考试没给默默留下什么特殊印象。只是数学考试有一道超纲题过于诡异。

数学考完,同学们在黑板上写出各自的解法。有人说,勾股定理在这里不成立,不能用,最后答案是两千多;有人说,是直角三角形,勾股定理可以套,算出来是三千多;YSZ 在黑板上方写下了他的思路,不过涉及了三角函数。因为大家都因学 OI 而接触了三角函数,所以不觉得有什么特别。默默也是难得地看懂了 YSZ 的思路。

默默:你们至于吗……题目都给你条件了你用超纲算法干什么?

丁泽林则凑到默默身旁,说,默默你认为题目有没有错。默默回了一句:“试卷说 \sqrt 2 = 1.141,我也涨见识了。”

回到宿舍,丁泽林与默默还在为那道题辩论。辩论着辩论着,他们得出一个结论:不应该对答案,明天的考试科目大家都擅长,还应想想 OI 冬令营的事。

33 冬日考验

寒假到了,同学们收到了一个好消息:绝大多数人都进了冬令营。默默也不例外。

SM 中学的冬令营机房的电脑是 Win 10 的,还能自由更换背景。默默按照喜好换了一张可爱的猫咪背景,还换上了猫爪鼠标指针。

第一天,老师讲了状压 DP 的高级应用。默默似懂非懂,丁泽林则在旁边尽量用猫咪语言翻译专业术语。两人合作切了两道练习题。

中午吃饭,YSZ 凑了过来,三人谈论起 SM 的环境。

默默:这里居然没有电梯。

YSZ:那里不是又两台吗?

默默:我说的是教学楼,教室在四楼欸!

丁泽林:你直接跳上去不久行了吗?

默默:……

第一次测试在第 2 天早上,OI 赛制,一共有 4 道题。

默默:居然不开 O2?

他先将四道题都看了一眼,没有一眼题,看来这次是真能选出人才。

有一题关于序列,都要固定两个点,可 n \le 10^5,暴力只有 20 分。看上去像树状数组或者线段树,不过题目条件限制新颖,默默没想到有什么突破口。

二测在第 4 天早上,赛制还是 OI,4 道题,就是不开 O2。

第三题让默默印象深刻,因为这是一道复杂的数论。他只能想到 O(n) 暴力,但是 n \le 10^9,还是多测。依旧 20 分。

想进 SM 真的有那么容易吗?万幸,每天都能至少有一题能过,他心想。

34 图论课堂

一天,老师在讲一些关于图的知识点。

默默了解了效率各异的许多算法,但是最令他印象深刻的是老师的那句话:“我们可以尝试使用 Tarjan 算法解决这个问题。”他心想:“哦,我学过。”默默没看错,老师接下来就开始讲解 Tarjan 算法的实现流程。

默默看向例题,是炸铁路,就是他之前做的那道。好不容易等到下课,他问 YSZ:“Tarjan 是不是很巧妙?”“是的,它能解决许多问题,还能求 LCA。你以前学过吗?”

默默点了点头。

“那没啥了。”YSZ 说,接着他又小声说了一句,“依我看,这次选拔可能会看平时的做题记录,结合成绩进行选人。”丁泽林也插上一句:“对,而且上次我听助教说还要看纪律。没那么简单。”默默总结道:“这次一定是看全面发展的人,创新拔尖人才。”

35 最后时刻

第三次测试在最后一天的早上。毫无惊喜,默默只做出来一道题。

离场时,默默去上了个厕所,和 YSZ 他们分开了。没想到,他迷路了。默默正在努力寻找着前往食堂的路,结果草丛上的一只小黑猫吸引了他的注意。

“是我的同类。”默默心想。这时,小黑猫蹭了蹭默默的裤腿,示意默默跟它走。“你要带我去哪儿?”默默问。但小黑猫没有回答。

两猫走上校园里的沥青路。突然,小黑猫带着默默拐上一条泥土路,那里没有什么特别的,但是小黑猫加快了脚步,默默紧紧跟上。

到了学校边界的围墙附近,小黑猫带着默默找到了一本书。“哎呀,这有什么好看的?”默默叫道。小黑猫则喵了一下。

默默翻开书,一看,作者是 vvv?书名叫做《XX 中学里的秘密》。这不是默默的中学吗?

他赶紧拿出手机打电话找 vvv,结果提示对方手机已关机。

“不……”他在心中喊。但是考虑到要回去了,他只好收起书,回到饭堂。

36 七下开学

YSZ 成功进入了 SM 中学,但默默和丁泽林没进。

默默背着书包走入教室,还是那些旧同学在讨论着体育运动。班里并没有什么特别之处,除了同学 XYL 对他说:“我要摸摸你的头。”

一整天风平浪静,默默刚要面对同学分离,还有新的局面。“那本书不知道有没有用?”他嘟囔着。

晚上,他被班主任叫了出去。默默以为他被抓包了,没想到他听到了一句“你要不要当班长?”

默默一下子懵了,他想了 0.37 秒后,说:“呃……老师,我不想当。”老师尊重了他的决定。默默也知道,他要当一个“自由人”,弄明白整件事情。而且他是 OIer,空闲的时间也不多。再说,他是一只猫,别的班的同学知道全年级最好的班的班长是猫,不是要被笑话?

后来,他从 XYL 的口中得知,默默拒绝职位后的 5 分钟后,XYL 去打电话,然后就被班主任任命为班长。

“又凑齐 5 个班长了……局势怎么一直在变动?今晚我要翻翻那本书……”

“解散。”9:15 分在饭堂门口,老师一声令下,同学们立刻解散。默默并没有去吃夜宵,而是和 XYL 一起回了宿舍。

2 号宿舍楼下,XYL 用手摸了摸默默的头,说:“来撸猫撸猫。”全班的人早就知道默默是只黑猫了。

回到宿舍,只有默默一个人(猫)。XYL 在隔壁宿舍。默默趁着宿管一个不注意,带着书溜进 XYL 的宿舍。

“来撸猫撸猫。”XYL 又打算摸默默的头。默默灵活躲开,说:“正事正事。”XYL 停了下来。两人借着阳台的光翻开了书本第一页。

“上面怎么有个猫爪印?”默默说,“黑色的,应该是墨水。”

第二页,是他们机房的图片。

“是机房。”XYL 惊呼,“注意时间,2026 年 1 月 2 日。”

“那个时候,还没有电线。”默默思考着。“什么电线?”XYL 不解。于是默默跟他说了一遍。

“照你这么说,那电线上的三个字母确实很可疑。”XYL 推理道。两人把书翻到第三页,一张办公室图片映入眼帘。

“这不是教学楼三楼尽头的办公室吗?”XYL 说,“这是班主任的桌子。”

“给我上床!默默你回去你原来的宿舍。45 分上床!”宿管不知何时进来了。  

离开前,默默回头给了 XYL 一个眼神。意思是,明天继续。

37 机房时间

第二天中午,默默和 XYL 吃完饭,到了机房。

没想到,RFK 并没有在那个熟悉的角落,打开全机房唯一一台 Linux 电脑,捣腾着他的数据。

默默拉着 XYL 来到上次放电线的角落,电线还在。

“上次我来,已经没有电线了。这次又来?”XYL 打破僵局。

“快看看电线上的字母,”默默说,“这三个字母是……”

“是什么?”XYL 迫不及待地说。

“UUU。意料之外啊……”默默叹了口气,“我还以为是 cat 或者 vvv 什么的。”

“出乎意料。”XYL 补了一句,“这是谁的电线?”

“没证据啊,不清楚。总不会还有一个叫 UUU 的人吧。”

本来 vvv 就下落不明了,现在冒出来一个 UUU。

“不管了,先写几道题。我再翻翻书,说不定就出来了。”默默提议道。XYL 回答说:“也行,我还有一道黑题没调出来,回去再看看。”

10 分钟后。

屏幕上 AC 亮起,那是老师昨天评讲的青题。默默起身,去找 XYL。XYL 此时正对着 9kb 的代码上下划动,还是没找出来哪里错。

默默指着他的插头 DP 说:“你看,你写的是 for(int j=1; j<=n; i++),你是故意的吗?我不会插头 DP,但是这个应该不是这道题需要的吧。”“你说的对。让我改一下。”

XYL 把 i++ 删掉,改成了 j++,提交到洛谷上。过了几秒,洛谷平台弹出了一大堆 AC,还弹出了经典的“你通过了此题!恭喜”。

“巨佬切黑,%%%。”默默做出了膜拜的动作。XYL 摆摆手,说:“这算什么,我又不是第一天切黑。”

38 新的线索

XYL 接着说:“你看看那本书现在怎样了?”

“我仔细观察了一下办公室的图片,发现这里有一台粉色电脑。”默默说。XYL 倒表现地自然:“你没上政治课吗?老师平时就是用粉色电脑上课的啊。”“重点不在这里,”默默卖了个关子,“老师说过,那台电脑一般要插入充电线才能用得好。我们可以借助这个。”

默默接着说:“瞧,这是那条电线。”

XYL:“电线不是已经破解了吗?还有什么细节?”

默默:“你看到了吗?电线后面是这本书!”

XYL:“是哦。来撸猫撸猫。”

默默:“先别撸。你再想想,老师一天要改一大堆作业,怎么可能桌上一张卷子、一本练习册都没有?只有一种可能,就是那天是期末考试。再看右下角,时间是 11:37,那个时候正在政治期末考试。老师要去 701 监考,不可能出现在办公室。照片里的老师又是从哪里来的?”

XYL:“如果老师只是有事回来拿东西呢?”

默默:“如果我说我在 701 考试接着 11:37 老师在班里呢?”

XYL:“有道理。难道有两个老师?这背影跟她一摸一样。”

默默:“太诡异了。来帮我调一下这道题吧。”

XYL:“我来看看这道题。”

XYL 往上划到顶,看了一下后说:“不是你叫我帮你调 Min_25 筛啊。我们学了吗??”默默回了一句:“你都学了插头 DP 了就不要再装弱了。”XYL 反驳:“我只是偷偷内卷了一下。还有你的 Min_25 筛代码是什么玩意儿?你交的不是线段树模板吗?”

39 四人团聚

一个周末,默默把丁泽林、YSZ、XYL 都叫到了一起。四人来到学校附近的一处公园。

在公园里,他们还遇见了其他几位同学,大家一起踢球。XYL 更是射进了一记世界波。YSZ 在赛后给大家买了一些水和饮料。几个人朝公园旁的地铁站走去。

在月台等车期间,同学们聊起了刚刚的球赛,不知不觉就扯到了学校。默默发现,几乎所有人都发现班主任、RFK 的关系很异常,但是大家都没有确凿证据。

列车进站,丁泽林带大家上了车。车里人不多,大家坐满了两排位置,有说有笑地准备去位于城郊的大商场转转。

三分钟后,下一站到了。坐在右门的同学们脸上的笑容唰地一下僵住了。坐在左门的同学们不约而同地回头一看……

有三个人上了车,分别是班主任、RFK、vvv。RFK 率先说话:“同学们都在啊。”三人在旁边的位置坐下。

默默注意到,RFK 和 vvv 的表情并没有像班主任这么高兴。vvv 已经是很久不见了,他瘦了一点。默默刚想上去问一下 vvv 一些事,但是列车到达了城郊的商场。默默要下车了。

“老师再见。”YSZ 朝老师们挥了挥手,带着同学们下车。

出站后,默默提出了一个问题:“为什么 RFK 和 vvv 的表情这么奇怪?”“肯定有问题啊。”一个同学答道。

我好像看出了什么。难道 RFK 和 vvv 有仇?

40 新的周末

周六早上,默默变成了猫。为什么?因为现在没有比赛。

他和 YSZ、XYL 约好了去班主任的家里讨论政治问题。好不容易步行到了一栋公寓楼下,他们发现一个问题:不知道老师的门牌号。

XYL 想到给 vvv 发信息。不出五分钟,vvv 果然告诉了他们正确的门牌号。

“叮”电梯开门了,一个人站在门口。“老师?”YSZ 惊呼。“你们怎么跑我家来了?”“我们找您问个问题。”

班主任家的大门开了,里面坐着两个人——RFK、vvv。但是两个人谁也不看谁,好像吵完架。

“我在阳台看到有一只黑猫和两个很像我们班的同学的人,就准备下去看一下是不是真的默默来了,你们就又吵架,礼貌吗?”

“为了什么你不知道?”RFK 喊。“到底是谁的你心里有数。我不管,这是我的!”vvv 不甘示弱。

“都别吵了。现在学生在,不要闹事。”“我就是要吵,怎么样!”

YSZ 轻轻问了班主任一句:“老师,他们是不是没有做到行己有耻?”班主任没理会。

“你们两个要吵就出去吵。”

“走啊,出去出去。”RFK 挑衅道。vvv 紧随其后。那场面,像是两个人眼里都射出闪电,谁也不怕谁。

“他们为什么吵架?”XYL 问。默默只是轻轻喵了一声,表示不知道。YSZ 则表示,他们可能不是为了 OI 上的事。

“要不,你们先出去,剩下的我来解决。”两人一猫听到这句话,立刻离开了小区。

“不,这一趟好像什么也没有收获到。”XYL 叹息着。

这时,YSZ 来了一句:“你们调查的事,其实我早就了解了。”“你的意思是……”“我帮你们找找,SM 中学有没有相关资料。”

“统一战线了。”默默心想。

41 学分层图

6 月份有省里的比赛。虽然现在只是 4 月份,但是 RFK 快马加鞭,今天教同学们分层图。

默默发现,分层图通常用 Dijkstra 解决。RFK 说,分层图一般有两种建图方式,一种是显式建图,另一种是隐式建图。默默更喜欢隐式建图,因为感觉像是最短路加了一维。dis 数组也很好写,通常加上一维就够了。

P4568 就是一道分层图题目。其实并没有那么难写,本质上还是最短路。

分层图难也就难在图论建模而已。

P3505 很好地使用了分层图的思想。利用将图分层的技巧融合上了贪心等等的算法,成为了一道巧妙的好题。

学习分层图,很好地填补了默默对于图论问题的空白。默默知道,CSP-J 有一次就出了分层图的题目,那是一道绿题。它借助了余数。

不知道 YSZ 在 SM 有没有学过分层图?

42 旧藏书室

2026 年 4 月底,SM 中学旧藏书室。

现在是自由时间,YSZ 来到了 SM 中学的旧藏书室。他还有 40 分钟。默默给他发微信说,有一天他去给班主任补交作业,看到写着“SM 中学旧藏书室有秘密”的纸条。

YSZ 走进藏书室,里面只有一个老师开着电脑办公。见老师也没理他,就在书架间寻找着可疑的书。

他拿下一本《动物的关系》的科幻书,里面夹着一张纸。

YSZ 看完,吓了一跳,是一封……情书???谁写给谁的也不知道。

还蛮甜的。

这么不正经的东西应该和事情的真相没什么关系,不过为了休闲娱乐,YSZ 把它折好,放在口袋里,准备给原学校的同学们看着玩。

有一本叫做《猫咪的秘密》的书,里面的猫咪主角和默默很像,但看起来也没什么异常。

“这也没有什么啊,只能明天找了。”YSZ 有点沮丧地说,“劳动节的时候,就跟他们说没发现什么吧。”

望着 YSZ 一步步离开,藏书室里的老师突然望着他笑了。

43 假期会面

5 月 1 日,令人期待的劳动节终于到来。四人在学校外的一个儿童乐园里碰面。

YSZ 拿出了前不久的新发现。其他三人立刻和 YSZ 看着那封情书。

默默率先发现了一个问题。通过丁泽林准备的猫咪打字键盘,众人发现了一个细节:这封情书是由两种字迹写成的。

XYL 开悟了:“默默这是在提示我们,这是两个人写的。情书不简单。”丁泽林推理着:“你的意思是,这两个人同时喜欢上了同一个人?”

打字机的屏幕上显示着几个字:“上面的字和 RFK 的字迹很像,我看过他的教案。”默默找到了线索。YSZ 明白了:“你的意思是说,有一部分是 RFK 写的。”“那下面呢?”XYL 迫不及待地问道。

“其实不用想了。我刚刚看到了那边有个熟人,一定是那位。”默默打完字,开始猫叫。

大家朝默默提示的方向望去,震惊住了:vvv 和他们的班主任正有说有笑地散步。

“哎呦我去,怎么回事?”XYL 没忍住,叫了出来。YSZ 呆住了:“这确定不是双胞胎?何意味。”

“那,那本《猫咪的秘密》呢?”丁泽林问 YSZ。“在这儿。”YSZ 把书拿了出来。里面掉出的纸同样引起了大家的注意。

“这里也有一张纸?”丁泽林捡起纸。他打开纸,看到上面写着几个字:5 月 11 日晚上 6 点 10 分,学校 4 号楼 6 楼报告厅,有你想要的。还有,你一个人带上 XYL,我有话说。

“真来了。”默默打字。

“这个‘你’是谁?要不要去?”XYL 问默默,“如果是陷阱怎么办?而且还点了我的名字。”

“我去。”默默打字,“XYL,我们去看看到底有什么,学校里很安全。去报告厅外面不会出事的。”

丁泽林说:“这字迹……像是班主任的招牌草书?”“那就对上了。”YSZ 说,“XYL,带上默默,你们俩一起。”

44 6 楼争斗

5 月 11 日早上,默默居然临时变成了人形,还是接受了神仙的临时命令,晚上睡觉后再变回猫。

晚上 6 点,默默和 XYL 一起吃完晚饭,走向 4 号楼。在饭堂与 4 号楼 2 楼的连廊上,XYL 问默默:“你确定要去?”默默说:“确定。这可能是为数不多的机会之一。”

电梯从 1 楼升上来,到 2 楼时有几个老师在看手机。两人上了电梯。4 楼出去了三个老师,5 楼出去了两个老师,只剩 XYL 和默默了。电梯到了 6 楼,“叮”的一声,门开了。

报告厅的灯亮着。两人走了进去。报告厅里,三个人看起来等默默很久了。一个是班主任,站中间;vvv 和 RFK 各站两边。看似一场战争即将到来。

“默默,你果然来了。”班主任说,“来,你说说,我该选谁。”

XYL 一下明白了:“老师,我们真的可以这么加入吗?”

vvv 抢先说话:“默默,你的 Dev-c++ 是我教你用的,让她选我。”RFK 不甘落后:“默默,你的莫队是我教的,让她选我。”

班主任说:“XYL,你身为班干部,应该帮老师了。来,说句话。”

空调使报告厅的温度逐渐下降。明明是比较热的一天,但是报告厅像哈尔滨的冬天一样冷,一点都没有 GD 的样子。

现在皮球被抛给了 XYL。XYL 只是支支吾吾,不知道该说些什么。他看了一眼默默,默默小声回了一句:“我也不知道。你自己选。这是 Plan A。你先搪塞一下,我看看局势,不行就先跑,这是 Plan B。”

XYL 终于清了清嗓子,做出了决定:“首先,老师,我不了解你的意思。其次,老师你说过我们学生不能随便干预你们的事。第三,老师你应该回班登记好好学习的同学的名单了。第四,快要上课了我先走了……”说完,他一把拉起默默,跑出报告厅。

两人只听到一句女声:“算了,今天先到这里吧。”

45 回归 OI

一个星期后,省赛集训开始了。按照规律,默默变回人形。

不过变回人形对默默说已经不太重要了。还是有些事情,他想要等到省赛结束再知道。此刻,他只需要专心学习 OI。

一套套模拟赛已经是家常便饭,同学们早就习惯了。但是由于是第 1 届,RFK 手上也没有什么资料,让人感觉到神秘感。

RFK 和 vvv 有时会因为题目而吵架。比如一道题,两人做法的时间复杂度都是 O(n \log n),提交之后用时一样,内存也一样。vvv 先说:“你的代码里 set 套了个 vector,常数能不大吗?让学生用我的做法。”“你的 unordered_map 嵌套,常数很小吗?”RFK 反驳。

默默总会在这个时候插一句:“都别吵了!时间空间一样,思路也都不难。哪里不同了?我们两种都学。”机房的同学们大多同意默默的观点。

模拟赛是 RFK 和 vvv 轮着出。难度都差不多。第一题就是红题,纯签到。后面难度递增,最后一题基本上都是青,偶尔有几道蓝。默默想起了 vvv 在 CSP-J 组放了两道紫的事。

夜里的宿舍灯火通明,哪有晚上的样子——同学们都在用小灯复习各种算法和数据结构。

省赛又会如何呢?省赛前又会有什么事?

欲知后事如何,且听下回分解。