CSP2025J/S 游记
又名 “高三生为了参加 CSP 能有多拼命”
尽管对于高三的我,参加 CSP 已经没有任何实际用处,但出于对 OI 的热爱,在经过一番劝说之后,我还是让父母同意了我去参赛。心想着这是高中最后一次参加 CSP 的机会了,于是把 J 组也报上了(上次参加 J 组还是在初三)。
初赛,J 组和 S 组分别获得了 90.5 分和 88.5 分。S 的成绩比去年高了 30 多分,看来训练了这么久还是有用的。但是最后一个补全程序没完全搞懂,蒙了一堆,前面也错了好几个。考完试听说 gcx 和 cwm 都是 97 分,我怎么又被吊打了,难过了一会。此外,必须吐槽一下西南大学三亚中学考场,试卷是用再生纸印刷的,字迹模糊不清,有的地方根本看不清印的是什么/fn
和初赛可以直接在三亚考不同,复赛的考场在海口。其实三亚也有一个考场,但是没有 NOI Linux,这对于几乎从不在 Windows 上做题的我是不可接受的,所以我还是选择了海中的考场。但这种选择使得时间变得非常紧迫。显然,我不可能在高三的时候停课备战 CSP,并且也不太方便向老师开口申请请假一段时间提前离校。所以,我必须在周五 6 点放学后马上赶到火车站,乘车去海口,并且在周六下午考完后马上乘车回三亚,才能赶上第二天早上的课。
由于我们学校离市区很远,加上周五一贯的无可救药的堵车,到家的时候已经 8 点了。在家吃饭洗澡之后,只赶得上 9 点 20 的动车,到海口时已是 11 点半(更可悲的是我还要在车上写生物的四张思维导图),(刷了半天 B 站以后)1 点才睡觉,看上去并不是特别好的比赛状态。
J 组从 8 点半开始考。幸运的是,由于题目太过简单,所以睡眠缺乏没有造成任何影响,70 min 的时候就 ak 了。如果没有犯诸如主函数内开数组忘记初始化等弱智错误的话,大概还能更快一些(但就这种难度,有人 20 分钟 ak 我都相信)。虽然知道 J 组难度不会很高,但这次题目比我想象中的还要简单许多。我本以为 T4 至少能让我思考一会,因为去年的 T4 是蓝题,但看完题目就会了!写完之后开始罚坐,给 T2 T3 T4 都写了 gen(因为我发现大样例极其弱),T2 T3 写了拍(T4 没拍的原因是不会写比较好的暴力),但是没有发现没有任何问题。
大约 11 点时,我看到有同学离开了机房,于是感叹道:原来可以提前离场!心里想着,都开考两个半小时了还不走,HIOI 的群友大概以为我被什么题卡住了,我要赶紧离开,还能多休息一会。于是我用嘴型向老师示意我要走了(其实我说话了,但是声音太小,所以估计只能看到嘴型),在得到老师的同意之后带着我的所有东西头也不回地离开了。这时老师似乎发现了不对劲,在我准备把东西塞进书包拿走的时候出来制止了我,并通知所有人不能提前离场,这下尴尬了。于是只好老老实实待到 12 点。
下午的 S 组就没那么顺利了。T1 稍微卡了一下,25 min 时过掉,还算可以接受。但从 T2 开始就拼尽全力无法战胜。枚举选择改造哪些乡镇,再跑 Kruskal 的 \(O(m\log m + 2^{k}\alpha(m))\) 做法是容易想的,但始终想不到怎么优化。然后我的思路完全偏了,一直在想通过某种方式重新建图,新图的最小生成树就是答案,但是搞了一个多小时没搞出来。于是不得不先写了这个做法,预计有 64 分,然后去看 T3 T4。而我的字符串水平基本上约等于没有,所以 T3 没有想到任何优于暴力的做法,预计 10 分。T4 只会 20 分的 \(O(2^kn)\) 状压 dp。写完这些东西后又回去看 T2,但是还是不会/ll 于是,预计分数是 \(100 + 64 + 10 + 20 = 194\) 分。
出来之后感觉考的太一坨了,因为我觉得 T2 实际上很简单只是我没想出来。在海中门口偶遇了 cwm,得知他也不会 T2。但是经过几句讨论之后两人突然大彻大悟,搞懂了 T2 的做法——实际上只有在原图最小生成树上的边有用,这样用来跑 Kruskal 的边数就只有 \(O(n)\),于是就能过了。这个结论也是好猜和好证的,但是赛时陷入错误的道路太深,完全没往这方面想,很难过。
比赛结束以后又回归了文化课生活。本来记得查分时间是 11 号,也就是 CSP 结束后第二周的周一,但是这周四时听走读的同学说他看到可以查分了。于是我就在中午吃饭时去教室(偷偷)查了分。J 组没出问题,确实 ak 了。但是看 S 组分数时天塌了,怎么只有 \(65 + 16 + 30 + 20 = 131\)?非常伤心,后来两天心情都不太好。
周五放学后看了小图灵的预估排名,已经是全省 rk18 了。一位热心群友帮我检查了我代码的问题,发现我 T1 在处理相等的情况时有问题,而 T2 加上 #define int long long 可以获得 \(72\) 分(这我是真的绷不住了)。如果这些都没挂,总分就是 \(222\),全省第四。
伤心。