胜之不武——NOI2026 Au 记

· · 生活·游记

前言

虽然我还没有退役,但是我觉得 Au 对我来说跟退役没啥区别,毕竟 Au 了之后我再也不用努力训练 cnoi,可以做许多有趣的事情了。

回望我学 OI 的五年半,我总共获得了 3 块 WC 金牌,3 块 APIO 金牌;1 块 NOI 银牌,和 2 块 NOI 金牌。这个 8 块金牌的成绩,我也自感荣幸。NOI2025 确实是一个遗憾,但也许这是对初二一年运气太好的平衡。

NOI2025 之后,我不禁思考接下来的一年应该干什么,得出的结果是应该多加训练数据结构。于是在接下来的一年里我训练了不少数据结构题,在 NOI 前也自认为数据结构水平足够高了,然而最后两天的数据结构都被我战略放弃了,败给了我认为数据结构水平相当不如我的 @MatrixGroup。

WC2027 会考虑唱歌吧。

Day1 之前

出发前接受了号爸的最高指示:不要冒进。

首先去参加了号爸冠名的 123 编程集训,很遗憾大部分人都跑去核桃和代码源了,所以这里的人水平都不太行,除去号家军本来的人之外就只剩一些内蒙古省队之类的人了。

期间的 UNR 我认真打了,靠略微的作弊通过了 D1T3,然后就靠着这个苟到了 UNR 金牌。号爸营狂砍两个 UNR 金牌。剩下的模拟赛我基本都在摆烂,没咋认真做题。

报道前一天出去吃了顿饭。

报道当天我上午就进了学校,用两个包把宿舍门上的玻璃堵上了(伏笔),并且发现 WC 时我当时在住的宿舍用来堵玻璃的两块硬纸板居然还在。吃饭的时候遇见杨永昌,杨永昌说,这第一顿饭应该是你接下来这几天最好的饭了。

下午分发了江苏省的徽章,不过我自己没定徽章因为我觉得该认识的人都已经认识了。然后前往南外宿舍参加掼蛋活动,结果才打一小局就被梨树赶走了,并且牌也被没收了。

晚上睡觉质量不太行,研究表明需要调低空调温度。

Day0.5 尝试欣赏开幕式但是失败了,晚上打了赛前唯一一个板子:链分治(其实是 toptree 青春版)

Day1

开题,大约 25min 就会了 T1 和 T2,然后看见 T3 毫无意义的 4/35 并理解了一下就意识到这肯定不是正常题,而且我必须认真做一会(爆搜决策树)才能获得不错的分数(并且我大概理解到第一步最好问一些因数较多的数)。带着这个预期开始写 T1&T2,大约 2.5h 时获得了 180 分,感觉卡常无望就开始写 T3 了。

我先试了试第一步,发现问 \{720,1440,2880\} 的效果还行,中间需要加一个数,不过 2160 显然不是好选择,我需要一个 7,还需要 2 的幂次至少跟 2880 一样,于是就选择了 2^6\times5\times7=2240,发现这个的效果还不错,最大集合只有约 220。此时还剩 3/31,只要效率还行就能过。

于是开始写爆搜(从因子 \le 17 的数里面较为均匀地选 10 个出来),我限制第二步需要把集合分成若干大小小于等于 50,第三步则需要小于等于 10。

过了半个小时写完了,但是发现根本搜不出来,研究发现其实是我的程序经常在最后一步对着 10 个连续的质数鱼鱼蒸,我想了想发现我们还有一个叫做 sub1 的东西,直接问一遍集合里的所有数就行了,改了之后飞快地过了。

然后开始把爆搜改成真实的代码,改完之后发现样例居然过不去,立刻吓死了,紧急调了一下发现原来是随机的集合忘记排序了,改完之后爆搜的用时依然差不多。

于是在还剩 40min 的时候就过掉了 T3。然后发现 T2 确实没招。无聊的时候把 T3 卡到了 4/25,出题人这么菜,能不呢给我发 110 分(

然后就出场了,发现 qjm AK 了,T3 不少人被创飞了,真的不是题。

cb 说队线 250/260,但是好像大家根本不信,最后认为队线 270,那看来我 D2 还得认真打。(最后发现队线确实是 260)

下午在宿舍打牌。

Day1.5

今年社会实践升级了,不仅考察防暑,还考察早起。

而且没有导游,感觉什么都没有收获,导游至少能提供一部分收获感。

qjm 禁止下午在宿舍里打牌。于是我只能玩了一下午小电脑。

Day2

晚上睡得很好,一夜没醒,是个好兆头。

开场看了一遍题,发现 T3 似乎我能做,T2 也似乎我能做。先做 T1,鉴于我高超的 arc 水平(伏笔),我半个小时就发现了一个很好写的做法,并顺利通过了 selfEval

然后想了 15min T3 就会了 O(n^6),并发现了如何优化到 O(n^5),但是直接写这个也太冒进了。于是去看 T2,想了快一个小时也只会树套树二分,这也能过吗。?但是我也摸不透 2e5 2s 背后的事情,感觉写这个风险很大,万一被卡常了就老实了。

想了一下就发现 T3 可以分成两段然后差分所以只需要 dp 三个东西,每个东西各自只需要记两维,直接 O(n^4) 了。于是开始写。先写了一个 O(n^6),发现真是对的,于是立刻开始改成 O(n^4),改了半个小时改对了,一测跑得飞快。

然后只剩 2h 了,毕竟我不是来目标捧杯而是目标金牌的,所以果断选择 T2 暴力,最后获得了 64 分。

无聊的时候把我 T1 的 7 种分讨每个删了一遍发现获得了 7 种不同的分数,其中最小值为 25,最大值为 100,次大值为 90。?

然后就愉快地出场了。一问 qjm 说他只有 208,然后跳起来急眼了。我问了一圈发现没有问到多少过 T3 的于是果断跟 qjm 说 613 肯定没有问题,并且洋洋洒洒地介绍了我 T1 的高妙做法/xk。zyf 说他 ak 了,但是 T3 是偷的,在群里提前听说 T3 pre!=sys?!

许淇文从小道提前得知 zxx 这个【】是 705。

下午查分,然后发现 T1 变成了 95。?

研究了一下发现挂在了 k=2,仔细一想发现我的分析对于 k=2 其实不成立,但是居然只挂了 5 分。

回去的路上想了想整个题,首先发现 k=3 和 k=2 因为一样原因也挂了,但是根本没被发现。

然后发现 k=5/7 也挂了,因为我后面的做法也有不止一处不对,这下彻底彻底了。?

于是光荣成为 D2T1 理论可挂 100 分选手。这也是标题的来源。

不过看在我 rating 这么高以及之前 7 块金牌的份上,偷一个 NOI 金牌那咋了。

最后在家长的强烈建议下签了 t。

下午继续在宿舍打牌。研究了一会 T3 能不能做到更好,发现瓶颈在于二维卷积,如果插值的话可以至少做到 O(n^{3.5}),然后就没细想了。

晚上的嘉年华看了一眼就跑路了。

Day2.5

上午观看了我与 NOI。

下午闭幕式,坐在了金牌区第一排最后一个。感觉还是有不少高二选手遗憾退役了,祝他们文化课顺利吧。

号家军的发挥也比较可惜,外校的都 ag 了,STUDENT0 和 cdx 不幸得再打一年了,不过此外正式选手只有一个 cu,另一个 lyh 也卡线 ag 了。E 队爷 wyx D1 不幸被 T3 创飞了,D2 时间不够没能翻盘。

闭幕式完在 cyyz 吃了最后一顿饭,感觉这么多天下来也基本顺从了,毕竟厨师水平再菜油炸的菜还是能吃的。收拾收拾就离校住酒店了,结果到酒店发现包不见了,但我也懒得回去拿了(在一周后我才想起来伏笔)

后记

第二天回家了,然后摆了一周的烂,游记也拖到 8 月 2 号才写完。

noi 群里有人问 D2T3 怎么做到更优,我发表了我的想法,然后想了想发现瓶颈在于 n\times nm\times m 的二维多项式卷积(n\ge m)怎么做到 O(n^2m),然后发现只需要把大矩阵分成 m\times m 再插值复杂度就对了,比较魔怔。

号爸的喜报依然是把所有曾经来过的学生都写上,依旧是 7 个金牌实际上严格来说要去掉高二的 4 个。(省选的时候也是喜报上只有高一的才是仍然在号家军训练的)

qjm 说他两天考前吃的助眠药其实是安慰剂。

下一个赛季的模拟赛已经开始了,不过我 Au 了就不用打了,每天口胡一下了事。qjm 甚至都懒得看。