As the Story Goes On / NOIP 2025 游记 / 后记之二 / THUPC 2026 初赛游记

· · 生活·游记

事到如今……就算这个“世界”里的所有人都知道我的真实名字,也没有关系了吧……

请先阅读 Inception Initiation / NOIP 2025 游记 / 后记。

2025-12-13 / The Dust Settles

文化课已经进行两周了。此时,我坐在家里,看着 The 4th Universal Cup GP of Jinan 的排行榜,不由得感到苦闷。

这场比赛已经进行两个小时了。然而,除了我在第二十分钟用三个罚时的代价取得的签到题 AC 之外,我没有得到任何的进展。

于是我去 QQ 群翻看信息,却突然看到教练在群里发了 NOIP2025 分数线公布的链接。我立刻点进去,只见文章中赫然写着:

::cute-table{tuack} NOIP2025 分数线及获奖情况 < < < < < <
省份 一等奖 < 二等奖 < 三等奖 <
^ 获奖分数线 获奖人数 获奖分数线 获奖人数 获奖分数线 获奖人数
广东 144 211 113 228 86 293

尘埃落定。

我的实际分数是 100+24+0+35=159,高于 GD 一等奖分数线 15 分。

换句话说,如果只是为大学报考计算机系做准备的话,我已经拿到了最基础的敲门砖,也就是省一。

但我的目标显然不止于此。我想爬得更高,想去 WC 看看,想去 APIO 看看,想去省选看看,想去 NOI 看看。

比赛结束了。我仍然只有一题。但这毕竟是 Universal Cup,我在这之前已经参加了六次比赛,达成了填满 rating 槽的先决条件。

更好玩的,显然是明天的 THUPC 2026 初赛。

2025-12-14 / THUPC 2026 Preliminaries

尽管比赛在 11:00 才开始,我却在 6:30 就已经起床。原因也很简单,从升入高中开始,作业量急剧增加,而在昨天一整天都在打比赛且今天晚上就得回去周测的前提条件下,我不得不早起来完成大量的作业。

由于我因为一些原因找不到队友,加上我也不太想组队参赛,我最终选择了和我参加 Universal Cup 一样的配置,单人参赛,队名就用我在 Universal Cup 的队名的中文翻译,繁星一闪。

最终战况是在 10:45 前写完了除化学之外的所有作业。化学是真难学啊(虽然之前有三个月没上课这个条件很重要)。

11:00,启动!观察题目名字,发现除了 M 题的题目名字仅为一个字母 M 外,其他题目的名字都至少是一个英文单词。直接开!题目名:哈姆星与古地球学术行为影响星球文明的考古学分析。再仔细一看,好家伙,这不是我们知名捂大硕士 YJY 的学位论文《中印生育行为影响家庭暴力的经济学分析》吗?那还有什么好说的,作为一个古地球人,我们自然可以一眼看出答案为 D!提交!

然后获得大量的 500 和 502。算协官方讨论群在比赛开始后全部禁言,导致所有的选手都涌入 LA 群抱怨这种情况。

最终等到 6 分钟的时候才成功提交,没有悬念的一发 AC。

然而不幸的是我很快就遇到了瓶颈。I 看起来相当好做,写一写,是一个 O(n^3m) 的区间 DP。然而写到一半,我发现我写假了(吗?),我计算的是所有合法情况而非结尾字典序最小的情况。那咋办?换题吧。G 的 AC 数量早就遥遥领先了。

那我是不是直接拿两个整数出来,每次贪心地给小的那个加上去就行了?为了偷懒用 Python3 写,过了样例,交上去,WA 了。寄。按照以往的剧情,这个时候我肯定会在接下来继续吃一堆罚时然后似掉。咋办?

继续冷静推吧。好在很快就发现规律了,首先把 01 分在两个字符串里,等同于在原字符串中挖出几个空穴。最优操作一定是取出全 1 串的最大的 1 塞进原串权值最小的空穴里。然后写完了,过掉样例,交上去,AC。

回去看 I。这个解法应该很对啊,看不出问题。哦!我只需要先把字典序最小的最后一个串求出来,然后在 DP 之前把最后一个串固定下来就没有问题了!那这道题就被完全割裂成了两道不同的问题!这也侧面说明了算协是真不缺 idea。直接完成实现,过掉样例,一发 AC。

这个时候我去看 J。实际上 J 的 AC 数量非常多,我其实已经想了两个小时,但没有任何进展。不过仔细想想,在过往的 Universal Cup 中,我也多次碰到我做不出来二签但能做出出题人设计的第五道甚至第六道题的情况。所以我选择了一个我自认为更合适的方案:做 L。

本来我觉得这题是个数学推导题。然而思考了一会,我发现我在对着区间平均值的平方和的和求最大值。其实这题只需要一点点直觉——显然让更大的数分进更小的组可以最大化其价值。那么最优的方案中,分段的长度最多只能有三种:前面短的,后面长的,还有介于两者中间补空的。预处理所有种类的段长的价值前缀和和后缀和是 O(n\ln n) 的,显然不会有任何问题。实现,过样例,提交,一发 AC。

那我还能做啥?好像就只有 J 了。在对着它足足推了一个小时之后,我才发现如果把最底部的 1 抠掉,最能对最终 2 的次幂的奇偶性产生影响的方案是尽可能让原数两边的数在保证相邻和都是 2 的次幂的前提下尽可能小。这就等同于不断从最高的 1 开始按位取反。最终进行一些条件判断,通过样例,在搓了几个数据、修了几个边界条件之后觉得没有问题了,于是提交,一发 AC。

那么,到此为止了。此时还剩半个小时,我不认为我有做出其他题的可能了。

比赛结束,解榜,rank 222。对于这个成绩,我实际上已经相当满意了——其中一个原因是我单人参赛,缺少了 ICPC 类比赛中最重要的讨论环节,而另一个原因是,看向我校最高水平选手组成的队伍:一个是 "MORE MORE ACCEPTED!",而另一个是 "Kids"。这两个队都打进了前 100。他们取得的题目数量都是 7 题,而我一个人取得的题目数量是 5 题,这也就意味着我与他们的差距其实只有两道题。这并不是一个不可能达成的目标,而我所需要做的就是不断追赶他们。

2025-12-16 / As the Story Goes On

故事仍在续写。

我看到,高二没有退役的学长们在今年全部如愿以偿地冲进了省前 30

我看到,高一的两位同学从众人中脱颖而出,获得 240+ 的高分;

我也看到,高一的另一部分同学不幸折戟,未能获得省一,而他们中甚至有从初二就开始打进 NOIP 且连续两年越过一等奖分数线的。

算了,这些都是过去了。

故事仍在续写。若无法改变过去,就提笔书写未来。

让未来,如我所书!