CSP-J/S 2025 游记

· · 生活·游记

Day -n

虽然已经初三了,但还是停了一周课。

打了两场模拟赛,做了一点专项训练。

Day 0

考点有点偏远,住的酒店。

晚上 9:00 才到酒店,吃了一碗面。去考点门口看了一眼。

复习了一点数学(然而好像并没有考什么数学)。

Day 1 上午

进考点后跟着人群找到了机房,但没找到考场,询问工作人员后发现在楼上。

找到座位后把东西放下,准考证竟掉进两桌间的空隙里了。求助监考员,最后在监考员和左边热心同学的帮助下成功拿回了准考证。

T1 十分简单的贪心。没有想到记录每个数字个数的线性做法,写了一个 vector + sort。

T2 写的是 O(1) 做法。

T3 想了 5 min 发现可以求前缀和,再利用前缀和找到可以与当前位置匹配的位置。代码稍微调试了一下。

T3 测最后一个大样例时发现相差极大,以为是思路错了,但又想到相差不应该这么大,检查代码发现是数组开小了。

T4 第一眼感觉像是 DP ,但没有想到如何定义和转移状态。第二眼是数学,发现同样不好做。第三眼想到钦定最大长度,又感觉是双指针,发现不对。第四眼看到了数据范围,终于想到统计数量的 DP。

T4 最后一个大样例没过,改进了一下代码中状态转移的部分,发现有一个地方统计少了。修改之后通过了大样例。

感觉应该可以 AK。

Day 1 下午

下午到考场,感觉头有点晕。

发现答题盘里有上午同学留下的代码,打开看了一眼。

发现 ta T1 线性做法,T2 模拟,后面两题是神秘做法。我一下十分慌张。T1 会不会被 TLE?T2 会不会有问题?T3 思路对吗?T4 会不会少取模了?

想了一下,T1 10^6 O(n \log n) 应该没问题,T2 和 T3 样例都测过了,T4 应该没忘取模。于是稍没有那么紧张了。

T1 第一眼像是分组背包,想到自己好像忘记复习分组背包的板子了,便十分慌张。但看到数据范围,觉得应该是贪心。想了 15 min,想到反悔贪心的做法,通过了全部样例。

T2 是最小生成树。枚举选择哪些乡镇的做法十分好想,但时间复杂度太高。然后想到可以只保留原图中的最小生成树边,这就有了 80 分。没有想到更好的解法。

T3 写了一个字符串哈希。想到了 |t_1| \ne |t_2| 的情况。

T4 写了 8 分的 dfs。

赛后

在洛谷和梦熊上估分。

估分大概符合我的预期。但发现 S 组 T3 代码会访问数组下标为 -1 的位置。上网搜了一下,了解到这是未定义行为,不一定会 RE。又想到洛谷和梦熊上都没有 RE,心里稍轻松了一些。

11 月 6 日成绩出了。J 组 T2 居然爆炸了。S 组 T3 没有 RE。

最终成绩:

J 组:100 + 50 + 100 + 100 = 350

S 组:100 + 80 + 30 + 8 = 218

有点遗憾,没能 AK J 组。