NOIP2025 游记

· · 生活·游记

别急。

前情提要

CSP-S1,S2 都 AK 了,但 NOIP 还能依照往常一般简单吗。依旧在山理工,能否再续辉煌?

考前刷了一遍五年真题,除了棋局其它题代码都写出来并通过了,但做的很慢,不过考前抱佛脚也没啥意义倒是。

赛前预感到了 NOIP 会是本赛季自己最艰难的一场。命是改不了的,但是能否时来运转呢,作法也都作了,拜月也拜了。总之最重要的还得是自己的努力拼搏吧。

Day 0

考前大巴五个多小时开到了淄博。酒店和去年一样,不太好,不过反正就凑合住一天,没影响到状态就行。

试机环节:先是发现居然有网络,尝试看 U17 打斯里兰卡被监考老师击。发现 VMware Linux 没有共享文件夹,下地尝试问同学被叫回了座位,问监考老师,说这是技术相关问题,要自行解决,不理我,那咋办。后面自己试出来了共享文件夹,不过为啥 Linux 终端测出来也 real != user+sys,有点迷惑。不知道是不是被搞懵了,写完 fread 快读之后忘了测速了。不过按经验 3e8 模乘都差不多。

D 盘发现有其他人写的代码,还以为在大学遇到了同好,谁能想到是考前某某兔集训就在这个机房啊???

因为能调试所以还是决定用 windows 写代码,不过不太懂,为什么第一次编译运行的时候要等一秒啊?(即将成为伏笔

回酒店后被困在电梯间等了好久,以为自己要寄了,最后终于呼吸到了新鲜空气。尝试写类似“考前策略”的东西,不过不知道该写点啥和记点啥。真考试的时候随机应变太重要了,只能把易错点再回顾一下,对拍这些别忘掉了,接下来早点洗洗睡就是最好策略了。

Day 1

睡眠质量很不错。

六点半起床,手机上看点策略再听听歌就进考场了。赛前的目标依旧是 AK

8:30 才能动电脑。打开 VMware 发现:坏了,昨天共享文件夹咋失败了???

重复多次后终于成功了,先读题。

T1 看起来是神秘调整法,T2 是计数?稳了!T4 又是 query,T3 树上问题似乎是最困难的。

读了十多分钟时间题之后,感觉优势在我,接下类轻松推出了 T1 的调整过程,至多一个人选了 \geq 2 个,并且可以确定出那个人,其它的排序贪心即可。可能 9:00 就通过了。

T2 毕竟是计数,感觉我分分钟就能切,所以先想 T3。首先三维的 dp 是容易的,接下类我设计了 a_i,b_i 分别表示子树内的 mex 和闲人数量。经过一通贪心分析之后,转成了进行链剖分,最大化每个点跳链长度的 max 之和。后面疑似可以 dp,做完了?但是如何实现找 d 层儿子啊?只会树状数组,完蛋啦!

这时快到 10:00 了,但这个小问题解决完了,优势依然很大啊!似乎直接暴力跳就行?

后面思路乱掉了,最后一个有希望的解决办法是,非叶子节点可以直接继承,叶子节点需要暴力跳。

着急半小时,回头看时间,早已过半,除 T1 外一分未得。来不及了,预计在 11:00 写完 T2T3 看起来是不行了。

转换去开 T2,意识到了枚举 2 的位置,最优策略只可能反悔贪心一下。直接枚举,前面是个范德蒙德卷积的形式,转为组合数,O(n^2) 做完了?

咋调不出来,红温。各种错误,主要发生在 1 和 2 之间的点如何去选,想不明白。

中间还发生了插曲:代码一运行一分钟都运行不出来,还好我有 linux,但是我想调试还得用 windows。所以只能 windows 编译+linux 编译运行+linux 找错+windows 调试,来回切换真的自闭啦。还有我的脚莫名其妙过敏了,痒感和挠破流的血,真的很难受!

半小时找到一堆错,还推出了大错误,时间已接近 12:00,what should i do???

中途上了好几次厕所洗脸冷静,手指甲也啃光了。

AK 的目标越发遥远,首先做好当下吧。及时切题,把 T3 的树状数组写完,并过了大样例。

T2 看起来知道问题了,中间的 2 是可选可不选,1 必须不选。重新改了一版,已经对了多数,找到错误数据再调调,终于在 12:20 左右过了大样例。不过极限数据跑的很慢,linux 开 O2 测出来 user 是零点九几秒,不知道咋办。

T4 稍微有点思路就是分治+单调队列。先把 AB 部分分打了。其它部分分只能想到对 L 分块,不过还有问题,不管了,赶紧先打完吧。

最后成功在 12:45 打完了 T4 所有会打的部分分,卡常完全不会,再改乱了就得不偿失了。

后面十分钟就改了 T2 和 T3 部分代码用来卡常,卡完救收手检查文件!确实没时间写对拍了,不过相信大样例。

出考场认为自己 100+100+76+65,实际可能多,不太可能再少,但多也多不了几分,顶多 T3 不卡常。

讨论时发现机房小登都秒了 T2,有大手子两个小时就写完前两题了?那咋办。外省的大神更牛了,不过也没必要跟他们比。

会赢吗?会赢的。会赢的!

回家复写了两个代码,C 应该没问题,D 正确性也是对的。听了一些人的 D 做法,感觉不算很难,但我确实不剩多少时间了,想不到。/ll

Day 2

似乎没有更新的消息,那就这样吧。等出成绩,先准备 CTT 了。

总结自己不足的地方:脚确实没办法,运气不太好。从策略上,T3 到底应不应该早点写完树状数组之后放下?T2 为什么不在想到清楚的时候就开写,并调了这么久?

好,说回来,调这么久的问题。编译运行卡住,耽误了多少时间,又对心态有多大影响?这次认自己倒霉,但要吃一堑长一智,以后试机要不要把这个问题加上?

最后,希望读者朋友们对,dev-cpp 代码编译运行非常慢,第二次就很快,的问题给出一点建议,多谢/kel

Day 5

CTT 刚考完就听说能查分了,100+100+100+65 很不错。看了下大家 T2 代码,发现太短了,做法完全不一样,那我这样已经不差了,运气属实是北。在这样艰难的条件下,居然还能成功过掉三题,抱抱我真牛。

希望能强势进入三十二强,给 SD 增加一个省队名额。

已经冲到这里了,再拼一把吧!