NOIP2025游记与总结

· · 生活·游记

省流
高二 100+32+0+[5,30]\to 0+0+0+[5,30]
文件读写我爱你,最惨的一次

Day -2

考前最后一场模拟赛手感很好,切掉了CF2500 的数据结构优化dp,又推性质拿到了紫色计数题的高额部分分,同机房 rk3,侥幸战胜了几个初三的巨佬。美中不足的是 T4 的读题分到最后十分钟才来敲导致题目看错了(注意,这里是铺垫)。

期中考第一次考进年段前十,赛前集训感觉也很好,仿佛一切都在往好的方向发展。S组高中生全省 rk 59,这次NOIP想看看能不能冲到前 40

Day -1

上午过了一道Ds题练一下手感,下午就乘车去福州。因为要先绕去初中的三中考场,所以等我们到十八中旁边的酒店已经开了3.5小时了(累)。

晚上去周麻婆聚餐,豆腐好辣,比之前吃过的周麻婆都要辣好多倍!!!

回酒店,看了看之前记的博客,23:00睡觉。去年的这个时候和别的学校的巨佬一起住(现在高三了,去年很可惜差一点进队),我们当时22:00就睡了,这样甚至能第二天6:30自然醒,年轻就是好。

Day 1

(其实不知道该叫做day0还是day1)

进考场,周围全是认识的人。左边和右后方是初中同学,右边隔一个是wzq。但是机位好挤,感觉后面电脑的线一直戳我背。听取同学的建议考前打了头文件和对拍,考场的老师一直让我们先把文件夹,子文件夹先建好,甚至还要建一个空的cpp文件?感觉有点逆天,但还是建了(这也是铺垫,这就是葬送了我这场比赛的原因之一)。

开考

8:30

看了第一题,棒棒糖问题。第一眼贪心,第二眼背包,第三眼 m<=1e18 不可能是背包,第四眼觉得万一是矩阵加速dp呢?然后开始推性质,发现可以把每种物品的奇数次购买和偶数次购买打包成一个新的体积为2的物品,又因为体积为1和体积为2的物品互不影响,然后就轻松的发现了这些体积为2的物品一定只会买最便宜的那个。然后就排个序随便写了5,6行完事。写完过了所有样例,觉得不保险就再看了一遍除了freopen的全部代码(这也是铺垫,哭了),还真检查到我写错了 m 减成负数时的特判,改掉,下一题。

8:50

开始看第二题,赛前立的目标是一定要切掉难度小于等于蓝的T2。看了一会,发现我把 w=1w=2 的分开考虑,最优策略和贪心策略一定都是归并状的结构,但是这样就需要状压每个物品的 w ,继续就着这个思路想,结果就过去了半个多小时。心态受到了一点影响,害怕重蹈去年第二题的覆辙(去年小菜鸟把第二题当成矩阵优化dp,但是矩阵一直写炸写了3小时最后只能70分线性遗憾收场,出考场发现大家都一眼数学题秒了)。看了看部分分,感觉挺丰富的,纠结了一会要不要先打,然而最后还是先去看后面两题。

9:30

开始阅读后两题,凭经验肯定都是紫以上了。发现一个计数一个Ds,NOIP2024 和 CSP-S2025 都是如此,不知道这会不会成为接下来考察的主流趋势。凭经验数据结构题的部分分比较好拿,于是把重心放到第四题。奇怪的数据范围,花了1秒想到了一个O(qnlenlogn)的做法,发现只能拿到 5pts 的高额部分分,然后开始穷尽我的毕生所学开始捣鼓各种奇怪的做法。花了半个多小时,生成了一个用st表预处理的 O(len(qn+nlogn))的做法,发现可以拿到 1-3 以及AB性质的部分分,于是欣喜开干。打了 3k 多的代码,发现A性质TLE了,剩下的都跑的飞快,检查发现A性质多个log,于是认为可以拿到 30pts,走人。

10:40

理性分析了一下(其实不理性),认为T3没有前途,且 8pts 的暴力可以很快打完,于是便先去拼T2了。

这次冷静了一点。其实他要问的不就是什么时候贪心策略不优吗?去思考这个,便很轻松的发现了性质,一定是 m=1 的时候碰到了一个 2 ,这个 2 平替掉前面最小的 1 以及后面可能补上的最大的 1。当时是11:00,认为接下来只是组合数推导与实现的问题了,两小时肯定拼的完,当时就觉得自己稳了,出去上了个厕所提提神。回来之后开始考虑,枚举这三个位置 i,j,k,然后思考每部分要怎么放置。时间一分一秒的过去,开始发现一点不对劲了,当时卡住我的问题是,最终会有两个序列,一个是原价降序序列,一个是性价比降序序列,然后它们的条件相互牵扯,加上考场的时候比较着急,就一直在转圈,没有想到固定一个视角考虑。

12:00

T2和T3仍然一笔未动,这时候慌了,于是放弃了正解,开始去扣每一档的部分分。分析了一下A性质和 m=2n-1答案都是 2^n,但是当时不知道为什么认为B性质答案也是 2^n,然后发现样例挂了,看了好久才看出来,又浪费大把时间。

12:10

这时候我觉得我完蛋了,因为我本身就不是很擅长考虑细节,所以我觉得T2大家应该都过了,就我在这里浪费时间还没有结果。思考了一下发现 m=2n-2 只用判断 a_1a_2 的大小就好了,但是怎么只有4分,不满意。又把B性质和 m=2 都想了想,都有 20pts ,但是发现都需要大量分讨,感觉难度不亚于正解,于是放弃。

12:30

这个时候只有 142pts ,认为自己要完蛋了,赶紧开始敲状压的 20pts。考验手速的时候到了,本来是用我发现的平替的性质来check的,但是一直过不了样例,于是我看啊看啊看,发现精度问题(当时疯了开了double存性价比),火速把 a_i 全部乘2。还是不过,于是看啊看啊看。

12:45

我要完蛋了!!!
一怒之下把check改成了朴素的背包,终于过了样例,迅速保存,但是突然发现怎么写在了之前监考老师让建的第三题的空cpp里面,点了个另存为走人。

12:55

目前 162pts
本来到这里,我应该向以前的比赛一样去检查文件读写之类的内容,但是我没有,我开始写T3(我疯了)。
确实是写完了,但是甚至没有运行,只通过了编译,还剩10秒,迅速保存。

13:00

考完了,我还是觉得自己完蛋了。问了一圈,发现大家都考的不怎么好(除了glh大神估分300),自己的分数其实还挺高的。于是感觉高兴些了。考完出来复盘了一下第三题的代码,发现有个地方1写成0了,T3暴0,没事,在意料之中。这时候旁边很多人说今年T3较简单之类的话,%%%。

回收结果出来了,他们都看得比我快,我也就随便瞄到自己的准考证号和四题cpp之后就去追wzq了。

回程

车上看到难度震惊了。黄黑黑黑,逆天出题人,虽然第二题后来降紫了,但是仍然是创造了历史。复盘了一下T4,发现小数据极限要跑4e8,B性质最慢要跑8e8,虽然我的常数应该较小且考场样例跑的飞快,但仍然是害怕了。丢了这 25pts 就完蛋了。

晚上

正常吃饭,交流,发帖询问第四题,看别人写的游记。突然在一个群里发现云斗的评测结果出了。FJ的密码这次这么快就破译了?上了云斗想看看自己是130+还是140+还是150+还是160+,发现都没有之后慌了,查找了一下—— 30pts

别人听到这个分数都在问我是哪题,可惜不是,这是总分0+0+0+30。当时我全身都在颤抖,一遍遍的查看云斗的数据,找教练和同学问源代码,祈祷这不是真实的。然而,当我拿到源代码的那一刻,我的心死了。

T1 的freopen把"candy"打成了"cnady"
T2 的代码是T3的

不知道该说啥,那一刻我笑了,是无力的笑苍白的笑,那时我拿着手机想找到一个人倾诉我那一刻的痛苦与绝望,但终究发现今年的逆天出题也让我的失误仿佛成为理所当然。父母反复询问这个是不是不准,是否还有转机,只有我知道,一切都完了。我一遍遍质问自己,

为什么不留时间检查文件读写???

为什么要在最后五分钟去敲一个几乎不可能正确的暴力

更讽刺的是,我之前每场比赛都是会在最后十分钟检查文件读写的,之前检查从来没有检查出过错误,而这次不知为何没有检查,而两个致命错误也都同时袭来,在这直观重要的一场考试。

在朋友圈激情抒发了自己的情感,似乎好很多了。该释怀了吧。

其实我是不幸的,没能够在这场比赛向大家证明自己;辜负了老师学校的培养,也对不起自己无数个日夜的奋战;更对不起这场比赛本该优秀的发挥。

其实我也是幸运的,我相对没有那么重的文化课压力,能在竞赛与文化课中保持相对的平衡。多年的OI生活,无论能力还是心态都得到了很好的锤炼,也助力了我在文化课学习中的成长。从一开始所有人都认为我只能保省一,到我看到自己一步步走来实力逐渐的提高,甚至有望冲进三倍甚至两倍队线的结果,这一路风景灿烂,便值得了我一切的努力与付出。

身边其他竞赛生的鼓励,初中同学的加油,老师的支持,家长的关心,luogu其他Oier的安慰,与我一道,将会凝聚起从谷底反弹的那股力量。我没有对省队的那种执着追求,我想。我们都想证明自己,然而比赛变数如此之大或许教会我们更应该放平心态,而专注于眼下的一个个算法,专注于每一步的积累。

我要走出一条独特的道路,我不会让高二NOIP的失败成为我OI生活的终点,纵使家长可能的反对或是学校可能的劝退,用我对自己的信心,用我的信念与毅力,坚持下去。或许在NOIP2026翻盘,或许在大学的比赛再次书写新的篇章。如果可以,我终会向所有人证明自己;如果没有此般机会,我也将坚持下去,与诸位Oier共同前行。

加油!无论你是将要退役的选手,或是前进路上的选手,请相信自己,比赛只是一个里程碑,我们的路还很长。世人多用结果衡量我们的价值,但我们自己绝对不能用一场比赛否认自己的价值与能力!

Day 2

凌晨入睡时分。感谢所有人,让我扛过了这番痛苦与绝望,可能还是有一些遗憾吧,纵使已经想通,但夜里每每想起仍是一番恍惚与流泪,好像这一切都是梦境,这一切都还没有发生。

这一晚梦到了许多,过去的经历,曾经的梦想,还有和wzq一起学习的点点滴滴。

梦醒时分。既然志向依旧,那奋斗自然也不该停止。所以这篇游记也不会止于这般抒情。

下午

开始复盘T2,赛后思路清晰了很多,发现了当时考场思路混乱的主要原因——没有固定视角。发现性价比序列不好确定,所以在原序列上考虑。还是枚举 i,j,k,然后发现可以把序列划分为 4 部分,顺着就能分讨出每部分的组合系数(这里不是题解,所以不写具体做法)。而最棘手的是最前面要使得 \sum w_i=m-1 ,最朴素的是枚举多少个 w_i=2 略微转化一下就是一个范德蒙德卷积的形式,由此优化到 O(n^3),然后不难发现式子是一个关于 k 的前缀和,随便套上前缀和优化就做完了。

这一番顺畅的想到了T2的正解,似乎又增添了我的不少信心,缓解了考场炸缸的悲伤。

接着开始打代码,这才是重头戏

  1. 先是打了没有前缀和优化的版本,通过了小小小样例
  2. 补充了前缀和优化的版本,直接自信提交
  3. 开始对着sale2.in的第一组数据瞪眼
  4. 发现值域太大了于是正确的离散化为了6,5,4,3,3
  5. 发现瞪不出来哪些情况不合法,于是写了个背包输出了不合法的情况
  6. 对比之下迅速发现了少考虑了一段的贡献
  7. 修改过后答案偏差变小,但是仍然出错
  8. 又瞪了一会发现有个地方想错了,并且还是想复杂了
  9. 修改了无前缀和优化版本
  10. 通过了n \le 10的小小样例,但是在 n=40 上又挂了
  11. 发现已经调不了了,除非写对拍
  12. 于是先去把前缀和优化的版本也改成目前正确的
  13. 随便看几篇题解找找灵感,但是发现没有写法类似的
  14. 突然发现我默认了a_{n+1}=0,但是多测好像不一定啊......
  15. 清空了多测,通过了n=40的部分
  16. 直接提交
  17. 终于AC了,转眼到了吃完饭的时间了

全过程共思考半小时,写代码调代码3小时,不愧是紫题!就这个难调程度(感觉是计数类问题的通性),如果我真的在考场想到了正解,或许会更折磨(身边就有好多说双指针调2小时调不出来的,也有想到正解但freopen注释最后忘删的同道中人(悲))

尾声

到这里这篇游记就要到尾声了,其实高中以来的每场比赛都让我刻骨铭心,无论是超凡的发挥还是超凡的失误,一直想写游记但是都没写。这次算是有史以来栽过最大的跟头了,也算是很有纪念意义的一次NOIP吧,情感酝酿到位了便提笔写下了这篇5500多字的游记和感想。

最后想说的是,NOIP2025的出题人,我其实是感谢他的,如果我自己不作死去打那 8pts 的部分分,那我或许就是这次 NOI plus 的赢家。然而没有那么多如果,考场上的紧张,考后估分可观的欢乐,尤其是那晚给结果给我带来的巨大落差,能体验到如此丰富的情绪,又何尝不是OI对我的一次锤炼呢?

生命不息,奋斗不止

祝 glh 稳稳进队!!!
祝 wzq 文化课突飞猛进!!!
祝大家在省选中考出好成绩!!!
也祝自己坚持与胜利!!!