我能在患有痴呆症的情况下参加省选联考 2026 吗?

· · 生活·游记

前言

参考了文章广场的两篇痴呆症文章,并且使用了 AI 进行一定的润色。

感觉这能很好体现我在考场的精神状况 /ll。

正文

今天,我决定要进行一项从未有人达成过的挑战。

省选联考创立已有好些年时间了。毫无疑问,这是 CCF 所有比赛中最关键的战役之一,决定了你是能走向 NOI 的殿堂,还是就此打包文化课。

而我,要在接下来的 2 天、6 题中,向大家证明一个深刻的医学奇迹: 我能在患有早期小脑萎缩和严重痴呆症的情况下,拿到省队名额吗? 这真的可能吗?这能被完成吗?

其实在考前,我就已经隐隐察觉到了自己病情的发展。在宾馆的晚上,我打开 DEV-C++ 写板子,敲完 SA 和 SAM 之后,我盯着屏幕发呆了半个小时,脑子里突然冒出一个问题:

“我刚才解压的压缩包在哪?”

“不对,现在还没考试,我解压什么压缩包?”

带着这种半梦半醒的状态,我迎来了 Day 1。

开始考试之后的第一件事,就是要先建考生文件夹,写自述文件,建好子目录。这样我们才能成功提交。

建好文件夹之后,我解压了下发的试题压缩包。因为在我们比赛的过程中,肯定会遇到很多的题,所以保证自己能看到题才是最重要的。

T1 是一道比较常规的题,我大概花了 2.5 小时中规中矩地写完,测了测大样例,感觉一切正常(最后一个 0.6s),就是极限数据怎么这么慢(4.5 s)。不管了,相信 CCF 神机,一定能让我通过这道题!

此时比赛才过去不到 3 小时,我的大脑前额叶似乎还在正常运转。

然后我打开了 T2。

T2 的题目很长,但我很快就抽象出了模型,并且在草稿纸上推导出了一个 O(n k^2) 的做法。我大喜过望,心想这次省选怎么这么简单,大概在草稿纸上计算一下,发现样例过了!

我看了一眼数据范围。嗯,这个 O(n k^2) 的复杂度,结合数据大小,似乎能稳拿 30 分。再加上我 10 min 写完的暴力 + A 性质,我应该有 45 分!

接下来,正常人的思维应该是:“我已经有了 30 分的保底,接下来去看看后面的特殊性质 B、C 分别怎么做。”

但我没有。我的痴呆症在此时准时发作了。

我盯着那张部分分表格,明明上面写着“特殊性质 B”、“特殊性质 C,而且只要把我的 O(n k^2) 稍加改动(笔者注:真的随便改改行了),配合这些特殊性质,轻轻松松就能获得 75 分!

可是当时我的大脑仿佛被某种神秘力量格式化了,我看着屏幕,心里想的却是:

“今天,我决定要进行一项从未有人达成过的挑战。我已经会 O(n k^2) 了,还已经写了 30 分。这 30 分简直完美。我能在想出正解方向的情况下,硬生生只拿这 30 分吗?”

(怎么感觉这个在哪里看过?肯定不是 NOIP 吧

于是,我满意地保存了 t2.cpp,把那唾手可得的 45 分留在了 D 盘的虚空中。

剩下只有一个多小时,我赶紧去看 T3。

T3 毫无头绪,是个极阴间的神仙题。我想都没想,直接开始敲最暴力的指数级搜索。写完之后,浑浑噩噩地熬到了考试结束。

走出考场,遇到同学讨论。

“T3 那个 m \le 2 的部分分太良心了吧?随便推一下就是个结论,白送的 16 分啊!”

我愣住了。

“什么 m \le 2?”

同学看着我,仿佛在看一个外星人:“T3 数据范围第一行,有一个 m \le 2 的 Subtask 啊,你没看?”

我努力回想。在我的记忆里,T3 的数据范围是一片空白的马赛克。我不仅没看到 m \le 2,我甚至都不记得 T3 有非平凡的部分分。

紧接着,另一个人补了一刀:“T2 配合特殊性质随便拿 75 分,大家应该都拿到了吧?满分也只不过是在这个的基础上稍微优化以下……。”

我:“……”

所以,是时候有人在患有痴呆症的情况下,单日怒丢 61 分了。

这真的可能吗?这能被完成吗?

事实证明,这不仅可能,而且我已经出色地完成了。

Day 1 考完,我已经有点意识模糊了。我觉得,我可以把这个省选联考当作第一年,总之先把 NOIP……不对,先把联考考完了再说。我急需在 Day 2 翻盘。

Day 2 T1 是一道交互题。 我打开题面,仔仔细细地阅读。第一段赫然写着:

“选手需要保证交互库每次调用 perm 时,调用该函数的次数不超过 6 \times 10^5 次,否则将被判定为 Wrong Answer。”

我眼泛泪光。

懂了!只要调用次数不超过 6 \times 10^5 次,就能满分!CCF 创立已有这么多年时间了,终于出了一道这么仁慈的题!

我大脑飞速运转,立刻构思出了一个 O(n \log n) 的做法。这个做法大概需要调用 2 \times 10^5 次左右,完美符合小于 6 \times 10^5 的条件。

其实在敲代码的时候,我隐约感觉到,这个 O(n \log n) 稍微改一下,很容易就能变成严格的 O(n)。大概只需要把里面那个 Query(l, r) 改成 Query(1, r)Query(l, 1)(笔者注:赛后 1 min 就会了),修改不超过 50 个字符。

但是,痴呆症患者的执念在此刻占了上风:

“我已经低于 6e5 次了!我已经满分了!我为什么要改代码?”

“我能在只写 O(n \log n) 的情况下,获得满分吗?这真的可能吗?这必须能!”

于是我潇洒地提交了这份代码,剩下的时间在 T2 和 T3 之间反复横跳,写了一堆连我自己都看不懂的乱码,应该能拿 [12, 28] + 24

下午 1 点半,比赛结束。两天的省选落下了帷幕。

在回程的车上,我打开了洛谷。大家都在激烈地对答案。

“D2T1 大家都是严格 O(n) 满分吧?毕竟满分要求调用不超过 3 \times 10^4 次。”

我手一抖,差点把手机扔出去。

“等等,满分限制不是 6 \times 10^5 吗?!”我颤抖着在群里发出这句话。

群友回复:“你看题面不看评分标准的吗?不超过 6 \times 10^5 只是不报 WA,有部分分的。只有不超过 3 \times 10^4 才是 100 分。你 O(n \log n) 调用了 20 万次的话,看表格大概只能拿 70 分。”

我如遭雷击。

我丢了 30 分。

而将这 30 分拿回来的代价,仅仅是将我的代码修改 50 个字符,将其变成极其容易想到的严格 O(n)。但我没有这么做,因为我笃定地以为自己拿到了满分。

无论如何,我的省选联考 2026 已经结束了。如果有后来人看到这篇游记,请记住我用惨痛教训留下的真理:

在看题的时候,一定要记得看全数据范围和评分表格。

不然,你可能连自己是怎么“患上痴呆症”退役的,都不知道。

后记

什么叫我 D1T2 换成 bfs 搜索就是正解。