NOIP2025 游记

· · 生活·游记

通常来说我的游记会记录在该年的赛季中,而非单开一页。

但是 NOIP2025 是特殊的。因为我被它炸退役了。

晚上十点多,这一天也是想了很多不知从何说起。那就先从具象的开始吧,写一下比赛本身。

不想打小标题了,抱歉。诶算了,等写完还是打一下吧。

NOIP 前

NOIP2025 前我的状态突然下降,不知道为什么,反正模拟赛打的也是越来越唐。不过我当时想的是,没关系暴力模拟赛先不打了正赛会有时间的,没关系 nfls 模拟赛总是难一些的,我去年几乎每次只能做一两题,不也 NOIP 3 题了吗,不慌不慌。

然后就不慌着,来到了 NOIP 前一天晚上。其实 NOIP 前一周我妈都在催我早点睡觉,其实是有道理的。因为我 NOIP 前一天晚上几乎没睡着,一直感觉只是半睡半醒躺在床上而已。躺了很久,我爸喊我起床了。

比赛日

吃早饭之后去边上超市买了蓝色的无糖版三得利乌龙茶(老熟人了),一瓶矿泉水,和一瓶红牛(取代了之前的一瓶 costa 咖啡,我爸建议的)。

去南航考试。路上坐车听《精忠报国》,也是传统了。

七点半不到,到大楼门口排上了队。6C 机房几乎没几个 nfls 的,没有任何面基活动。八点不到把我们送进去了,没开始试机所以只能坐着。

键盘好像是歪的诶?垫一张餐巾纸先。

南航的座椅是真挺好的,滑动摩擦力很小且较为舒适。

键盘怎么说,不能算很干净但至少可用吧。鼠标手感显然是差的。

八点开始试机。按照 b6e0 的指示,使用 g++ -g -std=c++14 -fsanitize=address,undefined -Wall -Wextra -fno-sanitize-recover=all -o A A.cpp 的编译指令。写了一个 checker,用于编译+测试大样例。

然后就没啥事干了,不知道干点啥就到发密码了。

看到了密码包含 noip 和 dream。对吧,也许我的 OI 就永远只能是个 dream 了。不对,我不应该想太多,先看题。

T1。6 min 会了一个做法,写,15min 时发现 test 4 挂了?何意味。手模小样例,找到了 hack,写了一下,30min 发现 test 6 又挂了?!何意味,找 hack,找了半天找不到。不行啊,都快一个小时了,一个题都没过,像话吗?!急死我了。

那我先看看 t2。看完题了,计数,但是没啥头绪。那我回来做这个 t1 吧。

找 hack,找到了。写一写,哦过大样例了。

赛后:我的做法怎么这么劣,别人好像都是几分钟秒杀我写了 1h 是何意味。

看 T2。想到一个刻画问题的方式:撤掉最后 1/2 个 w=1,如果能选的那个 w=2 的权值大于这两个的和,那就是非法的,否则是合法的。

考虑到 O(n^2) 可以通过,感觉限制不紧啊。想着枚举一些东西,但是考虑到如果值都相同编号也会影响,太麻烦,当时糊了一个大约是 O(n^3),然后看着组合数像是可以优化的样子,的一个做法。但是超级大复杂,没写,跳掉了 t2。

t2 有空再写,感觉不好写也不好调。看看 t3 吧。题目很快看完了。

T3 部分做法

显然,每个点只能是“贡献点”或者“辅助点”。一个贡献点产生贡献,且存在一个重儿子,基于重儿子的区间后面加上一些东西。

于是,整体大概就是,一个虚树,虚树存在一个链剖分,每个点的贡献是,向上跳到达的虚树上的点,到这个点的链顶的距离(点数)。

那要到达链顶,显然这个距离我们是要知道的。而他就是 \max dep,题目给了它 \le 800,这不就对上脑电波了?开写。

不久写完了。什么?test 3 挂了?看看数据,哦我草 n=40,这属于大又不大小又不小的一种东西,手模又极其麻烦,而不调它也没东西可 hack。

硬着头皮调吧。时间大概是 11:00。我把其中一个 40 个点的图画出来了。然后呢?我怎么知道答案的决策是怎样的?没法知道啊!只能凭借直觉手动给每个点填数,加和。算出来一个优于我的答案,但是劣与它的答案的东西。

后来发现其实是我图画错了导致我算出来优一点。

那咋回事呢?我又不知道正确方案是啥。

发现一个点可以不辅助自己上面遇到的第一个链,应该是从它到根的所有链的 \max len

那这样记录一下 \max len 的话,76pts 不是唾手可得?

test 4 怎么挂了,哦我 n 开小了,开大点。但是 n=5000,m=800 开不下,我索性删掉了 m 的一个 0

问题来了!有两档(4个测试点)是 n\le 120/240,m\le n-1 的,如果我这么干的话 \max m 只能是 80,几乎必倒闭。

其实我只要分开写就没有问题,但是我当时没意识到。

就这么一个偷懒,76pts to 60pts,是人都不甘心啊!但是我不甘心又能怎样呢,只能怪自己当时太粗心。

已经 11:40 了,还有不到一场 ABC 的时间,我该干什么?看一眼 T4 吧,决定冲 T2 还是 T4。

看完了 T4,瞎想了一些东西,发现都很扯淡。只能冲 T2 了。

T2 部分做法

想到了另一种刻画方式:每个点如果 w=2 则拆成两个 \frac {a_i} 2,放在一起排序,如果有一个 w=2 的组刚好卡在第 m,m+1 的位置,且,其前面的第一个 w=1a_i 和后面第一个 w=1a_i 和小于当前值,那就是非法的。

这个明显好做很多,枚举一下最后谁被卡住了,然后瞎枚举一些东西一个 O(n^3) 的做法就呼之欲出了。

写写写,写到了 12:30。WA on test 2 ??? 直接找到第一组数据,取了 48 33 24 24 25(我现在还记得)来手模。

发现是小问题,调一调就过去了。

12:50,什么?WA on test 4 ???

此时由于我的 checker 是先运行再 -diff 的,由于它答案错了所以输出了巨量的 diff 信息。其实我空间爆了,因此 -fsanitize=address 应该会生效,但是被刷掉了,我也没翻,导致我没看见。

12:55 了!再不调我总不能带着一个只能过前三个大样例的代码走人吧???

但是看起来前面的也是有点强度的吧!

最后 2min,决定开大一点空间,把 m 开到了 5000(原本为了调试开了 m=500,不知道咋想的,就是说 n=300 的话,m=2n 的时候就超过 500 了,就炸了。当然也可能是我纯粹在意淫,我就最后两分钟了还这么紧张,我能记得啥?而且我现在还看不到代码,说不定改对了还是过不了 test 4 呢,对吧),改完之后编译了一下(但是具体记不清了),我不确定在这之后是否又调整了什么东西。反正来不及了,直接 ctrl+s 保存,是个代码就先交吧,到时候结束了啥也干不了,现在去测大样例风险太大,来不及的。

于是!我就带着一个有可能会 CE、且赛时只通过了前三个大样例的代码交上去了!我的期望是它能过除了 n=5000 外的所有点,大约是 92 分,但是如果它只能通过前 3 个大样例就是 24 分,如果 CE 了就是 0 分。

最后,100+[0/24/92]+60+0=???

考完

一等有吗?真的有吗?

其实我 T1 也是可能挂的,别忘了我可是 CSP T1 70 分的大神,哪里都可能挂分。

听说队线只有 275 啊,那我岂不是 100+92+76+eps 就达到了?这队线不是脚打?

曾经见过一句话,说是如果对着队线打谁不进队?现在才发现真的是这样。

zxx 在犇犇自称自己 257,我们看看他这次有没有谎报成绩。

哦,扯远了。当时考完,因为 t2 还处于惊魂未定,不知道在表达什么,浑浑噩噩的排个队签个名走了,校门口遇到了 gjr 和 zhr,本来打算聚餐的,但是似乎大家都没有这个兴趣。gjr 100+100+76+100=376,这是真大神吧!zhr 好像没过 t2,不过 t4 都有分,不像我,T4 “代码缺失”。

只有我们三个,那就去附近地铁站边上吃吧。和府捞面,花费 ¥33。

期间我分享了我的唐唐 t1 做法,他们表示完全没这么复杂。

gjr 讲了他的 T4,倍增分块?这也太牛了,我大概听懂了一些,但是只是懂了个大概。

T3 出场之后,凯文说是长剖,说那两维我们只记录 cur=max 的和 cur=1 的,其中后者直接转移到对应层,而不是一层一层的转移。好像懂了一点,但是应该还是写不出来的吧。

然后坐地铁,很搞笑,到终点站了,但是我以为地铁是反方向的,一抬头发现还有很多灯亮着,没走,gjr 喊我“下车啊,到终点站了”我才反应过来,难绷。

然后就回家了,地铁上发了一个 qq 动态求助怎么学 whk。

没错,我要在一周内学习 9 门学科半个学期的内容,天哪这。。。

幸好同学们给力,给了好多资料,非常感谢。也提供了不少学习的方法,虽然我还没尝试。诶,这 7 天将是何等的难过!

出来发现既有 gjr 这样几乎满分,超过队线 100 分的高手,也有和我一样打炸面临退役的选手。对,退役。永远的离开了。不禁有些伤感。但是也千万别忘了有人居心叵测,谎报成绩,这种人不值得同情,我倒是希望这种人的成绩真的和他报的一样。

不管了,先不乱尬黑,出成绩了再算账。(好吧根本算不了账我都 whk 去了。

下午回来搞了一会 whk 的准备工作,发现 piggy 去看 Zootopia 2 了,我也让我妈带我们去了。观影感受:满满的美式价值观,典型的美国电影。是这样的。关于这个兔子就没被抓起来过,是不是有点超模啊?

然后去商场吃个晚饭,回家写游记。OI 最后的生活就是这样了,明天就要 whk 了。本来 OI 和 whk 两个,在我生活中交错了 4 年的东西,如今突然有了一道界限:从明天开始,OI 就与你无关了。感慨万分,无可奈何。

随笔部分

那既然都提到这么大的话题了,可以扯一扯再之前的:

既然现在离开 OI 了,不妨想想在我还没遇见 OI 之前,我是什么样的呢?六上,冲外都充不明白,视野只是井底之蛙,完全不知道真正大佬们的实力,也没谈过女友,平时也没啥挫折,就……说实话感觉生活很单调的,没啥意思。

OI 陪伴我的 4 年,我肯定成长了很多;但是如果没有 OI 这 4 年我也依然会成长,不过方向可能就不一样了。

我可能不会在初二就独自坐飞机,不会经历与同学们不一样的集训生活,不会感受到打比赛的挫折与成功带来的感情体验,不会认识年级 or 学校内真正的 OI 大佬们。也不会接触 tetr, florr 和 generals,可能摆烂的时间将大大减少。

对,但我不是大佬,我不得不在进省队前退役了——对不少人,可能进入高中是人生的一个新阶段,而对我来说,入坑 OI,与退役,才是人生的新阶段吧。

人生的新阶段明天就要开始了。暂且先不谈省选前回不回去集训一会,至少这一周我将是有充足(其实是过量)的 whk 任务。

如果我 NOIP T2 撞大运了,给了 92pts,那我届时将宣布我将暂时不退役;不过其实还有极大的可能是仍然无法通过第四个大样例或者直接 CE。但是代码都交了,决定权是 CCF 的了,我还在意它干啥呢?

可是我不得不在意。我到底该如何放弃 OI 呢?每次想到whk都会想到肯定有人要偷卷,然后再意识到已经不关我事了,但还是很难受,诶。

跟失恋之后的感受一模一样,怎么回事呢(而且都是在短时间内迎来重要的 whk 考试。。。

真的放不下啊。已经十一点多了,时间不等人呐,我要去睡觉了。

祝好,送给大家,也送给自己。