NOI2025卡线记
jucason_xu · · 生活·游记
省流:100+100+100+80+100+56+35=571 rk50
前情
NOI 之前经过了一段时间崩溃的训练。太久没有经历线下集训,强行调整状态,但总是不尽人意。
我认为自己这段时间的模拟赛和 unr 都尽力在打了。但其中一些场次可能几乎失去了思考的能力。可以说心态在面临全线的崩盘,在 unr day2 获得 5 分总分之后达到了前所未有的顶峰。
miao22 总是告诉我,银牌也无所谓的,在这段时间里也陆续听到了 crz 和怪兽两位学长的好消息。或许银牌之后的生活并没有看上去那么艰难,金牌之后的生活也没有幻想中那么没好。
至少,高一 NOI 没能拿到的银牌,要在今年拿到吧。或许我的水平,是的确不能奢望更多了。
抱着接受了这样的,或许也没能完全接受的心态,我踏入了龙山书院。
Day 0
试机。
在测速的时候,zhk 发现 xqw 的机子速度比他快,xqw 解释,这是因为 unsigned long long 的乘法取模速度比 long long 快,但也只是一点点。
笔试。多选题里似乎有一个选项不在题库,但它都是多选题了,排除法也能知道这个必须选了。
100,然后看 xqw 和 qzx 玩贪吃蛇。
Day 1
在梦里梦见过很多很多遍,不知道这是不是我的终点。
T1,什么时候这种题也能来 NOI 了。但保持纪律性,先把三个题都看一遍,并且思考一下 T1 有没有坑。
T1 给自己的要求是第一遍就写对。写完发现挂了,RE 就二分答案一下位置,发现是
然后考虑 T2。如果这个题不是两个题,那么最优化一定弱于计数。最优化也就是可以考虑重复计数。很快编出了
这时候隐隐感觉这个就能做计数了,因为我画不出重复计数的情况。所以很快用这个版本改了计数出来,它挂了,但我认为是实现的问题,所以我很快写了个对拍,并用小数据找到了问题。于是做到了
再分析一下性质,就把瓶颈优化掉做到 700MB ,先做 T3。
对 T3 进行了思考,第一步把操作转化成了适合手玩的形式,然后开始手玩一些满足 A 性质的小树。猜出了结论,于是写一下。结果发现它不止能通过 A 性质,也就是这就是这题整题的结论了。
那么改成异或哈希,就能通过 80。再去卡一下 T2 的空间常数,卡进 500MB 了,就不用管了。
最后思考了一个小时 T3 的更多分数。还是不会。100+100+80。
其实出来的那一刻我还觉得这个分数很高,但很快我就知道这个分数很多,有超过 30 个 280+,队线可能会达到 256 或者 264。
当时我惶恐了。我向来无法在 day2 取得足够的成绩,当我经历各种好运拿到 day1 的 280 我以为这个分数已经让我不需要担心 day2,但我错了。NOI 比我想象的更加恐怖,我如此超常的发挥只能让我略高出队线,那我该怎么办呢?
我不知道我应该怎么办。miao22 及时止住了我继续的崩溃,把我从毁灭的边缘拉了回来。至少,现在有一点优势,该考虑下一天了。
这一天失眠似乎不是大事,因为明天不是考试日。
Day 1.5
看着高一的小朋友们如此开心,不知道是不是看到了去年的自己。但他们确实可以开心,去年 day1 考完的我需要翻三十分——事后看来这是不可能的,对这三十分的执念最终让我获得了铜牌。而今年的他们比队线高出十几。
一路上看着大家玩 cbmfs。感觉自己已经忘了规则了,再一细想,上次玩 cbmfs 已经是去年百度之星了。
没有印象的一天。
转眼就要 day2 了。我的所有多天的比赛,从未打好过一场 day2。
23省选 过河卒
24省选 重塑时光
24NOI 登山
25省选 岁月
无一不是下限级的发挥,被很多人翻掉,葬送 day1 的优势。
但我告诉自己,如果这个世界上真的有命运,那么它不会喜欢俗套的剧情。或许我的最后一场 OI 比赛它将为我书写一种全新的可能。
在 miao22 最后的安慰下,我坠入最后一场没有梦的夜里。
Day2
大结局要来了,对吗。
还是纵览三个题。
T1,我在一分钟之内明白手玩这个东西困难,所以立刻选择了打表。十分钟我打出了足够做出这个题的性质,然后用十分钟完成了实现。
没有出任何问题。快速切入第二个题。
很快把第二个题转成,枚举两个集合 A,B,然后权值是 f(A)f(B)h(A or B)g(A and B) 的形式。
首先发现 g(x) 的取值是特殊的,可以拆贡献。那么枚举 A|B 然后枚举子集做高维前缀和。最后对 A|B 做一下容斥。复杂度
然后发现其中一个值需要求逆,但发现它一定是两部分的差集,所以可以维护这个集合中 0 的个数,然后要求两个部分的个数相同即可。
现在我得到一个
2.1s,几乎是我无法逾越的天堑。我尝试了很多的卡常,但它最终停留在这个数字。我意识到还有两个小时结束比赛,而我的 T3 几乎没有思考。如果它的难度小于 T2,那我就一定会万劫不复。
所以我选择打开了 T3,很快编出了
我其实已经有些慌了,但我一直严厉的要求自己稳住。经过调不出的贪心 check,我果断换了很复杂的 dp,最终第三版代码通过了样例。而且在 pretest 上获得了 35 分,比我的预期额外通过了
最后就是 T2 了。现在我的得分是 171,T2 如果能把这个 20 分的包卡过去,我就能获得 191。但,它真的还能挤出一点时间吗?
我已经明白瓶颈甚至不是
这时,我的脑海中突然浮现出一件事。试机的时候,xqw 曾经说过,ull 的乘法取模比 ll 更快。
想到这里,我抱着最后的期望,将代码中的 ll 定义成了 unsigned long long。
它从 2.1s 变成了 1.85s。
我已经无法追忆起那一刻我的感受。我立刻开始思考 T2 的更多特殊性质,但最后的半个小时,我在特殊性质 A 上毫无建树。
最后五分钟,我计算了自己的总分。571,高于去年的队线 33 分。
但我也清楚的记得,去年和前年的队线都打破了记录,有很多选手打出了自以为很高的成绩而在考场上懈怠最终出局。
出考场之后,和大家联系,学长们说我稳了,说我可以考虑签约了。但我没敢开这瓶香槟。
到了宿舍,很快,估计的队线就已经冲上 560,我冥冥中有不祥的预感,但已经到了这里,就只能接受命运了。
队线就像水面,人们如同站在铁箱里。水面不断的上涨,直到它淹没你的双肩,触碰你的下颌。你不知道它什么时候会吞没你让你溺亡,你只会祈祷它能在淹没你之前停下。
xqw 那里有了第一个预估的消息,577 在队线边缘。但今年可能最多会有两个国家队的递补名额,所谓的队线是 50?还是 52?边缘,又具体是多少?
我在宿舍里一个人彷徨,等待着命运的审判,期间 miao22 一直在和我通话,试图缓解我的情绪。我也知道,我的命运会在不久之后揭晓。
但在这之前,我需要查分。我的三道题其实都有被卡常的可能,但它们只要被卡掉一个点,我可能就注定和金牌无缘。
查分。
我没敢看每一题的细分,而是直接拉到了最下。191,没有挂分。
我在座位上一个人坐了很久,才想起看看别的信息。当我看到 T2 的最大点最终跑了 1.953s,我的冷汗几乎浸湿了身体。它比 selfeval 和我自造数据的任何一次测试都要慢至少 0.07s,但它通过了预期的分数。
回到宿舍,得到了一个确切的消息:pku 给出的分数线是 571,但没有人解释分数线是 50 还是 52。如果同分比较 noip,我依然是劣势。
又一会,zph 给出了一个更加确切的消息,我卡的线是 rk50,而 rk52 是 568。这意味着我最坏的情况也是 rk51 递补进队了。
我几乎完全松懈了。我想庆祝,想高兴,但我仅剩的理智还是告诉我,这并不是官方成绩。去年 qzx 的教训历历在目,因为 tp 没有统计 C 类的成绩,所以导致他也误以为自己是 rk50。
很多很多的消息接踵而至。有民间带名字的榜,有官方的只有考号的成绩。我在确定与不确定间参加了嘉年华,并且安慰自己,如果我 rk51 递补进队,那么我今年将拿到金银两块牌子,两年 NOI 凑齐三色牌。
这一天大家基本都已经默认我的进队,因为大概率是 50,即使 51 也和进队没有区别。我也默认了,熬了一个通宵。其实去年铜牌以后,我也熬了这么久。
后记
直到颁奖仪式,我才最终确定了自己的名次,的确是 rk50 无误。我就是最后一名集训队。
唯一有遗憾的,可能是低头让 dzd 帮我带奖牌的时候,过多的头发自然垂落了下来,导致留下一张非常非主流的纪念照。
结果颁奖仪式出来,得知了今年的 51 52 可能不会递补的消息。如果在这之前我知道了这件事,我将会再度紧张起来,但我现在已经确定是 rk50 了。
或许我就是最幸运的 rk50。
在我的具体名次确定之前,我以为 51 一样可以进队,所以度过了欢乐的 NOI 的尾声,体验了去年因为心情崩溃而没能体验的。
在得知 51 可能进不了队之后,我的 rk50 已经到手了,成为了我胸前的奖牌,我已经不需要担心更多了。
jt 学长是 NOI22 的 rk50,tony2 学长算是 NOI23 的,现在我是 NOI25 的 rk50。太喜欢玩心跳了。
现在可以好好总结一下我的 NOI,以及我为什么是 rk50。
就是我的运气真的很好。我并不是一个实力非常强劲的选手,甚至我的知识体系依然有欠缺。我不会子集卷积甚至不会 fwt,注定做不出 d2t2 的更高分数。
但在我的能力范围之内,我拿到了我能拿到的所有分数。包括 day1 的超常发挥,以及 day2 最终卡出来的 20 分。
我的心态其实在 NOI 期间保持在了稳定的水平,或许也得归功于 NOI 前它受到的巨大摧残和折磨反而让它更加的坚韧。
我只觉得,在我任何分数都已经做到我的极限之后,我就已经无悔了。即使我没能金牌,我也没有可以抱怨的,这就是我的水平所能拿到的最好的成绩。
如今的我不知道该怎么看待 NOI,劫后余生?强运加身?或许大家都认为我是好运的,我也这么认为,我两天的比赛都有不错的运气,最终的名次也眷顾了我在赛场上的努力和汗水。
我从一开始就明白自己的思维能力和对题目形态的快速认知可能需要靠代码能力弥补,因为我的训练量比不过很多人,我不是一个可以通过大量刷题积累经验的选手,这只会让我疲惫然后失去心态。因此我在突发情况下很快的选择了 对拍、打表、重构 这样比较笨但不会有错的选择。
我的 NOI2025 是幸运的,幸运过我从 NOI2024 以来的每一场正式 OI 比赛。
我的 OI 生涯可能到这里就大结局了,CTT 之类的都是随缘的番外篇。我需要感谢很多很多人,我的父母,我的老师,我的学长,但这里是游记,并不是列感谢名单的地方。可能唯一一个可以在这里特别感谢的人是 xqw,他在试机随口传授的技巧埋下了伏笔,为我的进队提供了至关重要的 20 分。
如果在看这篇文章的你仍然是一位在役的 OIer,那么我也祝福你在赛场上能拥有和我一样的运气。不光是最终成绩可以得到满意的结果,也是考场上能自信的认为自己拿到了自己能做出的每一档分数,以最好的心态面临每一场比赛。
NOI25 结束了,大家可能都要各奔东西,也有相当一部分我在 OI 期间的朋友会相聚北京,我也会去见到我的学长们,去开启新的生活。
无论如何,相信大家未来都还将再会,算法竞赛占据了人生中很重要的两年青春,在这里认识的朋友,很大概率会是一生的朋友。祝愿大家前程似锦,明若繁星。
这就是我的故事。我的 NOI 2025。