Skip to main content

这是我的信息学奥林匹克竞赛(OI)回忆录,记录范围大致为 2020 年 5 月至 2026 年 3 月。

省流:我的竞赛生涯并没有太多传奇的经历,平平淡淡打了几年,高一拿到省一后选择退役。

经历

NOIP

ZJ 高一 OIer。半小时过 T1,罚坐四小时。T2 推两小时式子做不出来,T3 和 T4 乱搞。

报名

NOIP 考试操作系统能选 Windows 7 或 NOI Linux 2.0。

大部分同学系统都选 Linux,因为和 CCF 测评一致,不容易有神秘问题。

我日常用的电脑是 MacBook Pro (M3 Max),是 ARM 架构的,但 NOI Linux 2.0 只提供 x86 版本,架构不同用虚拟机也跑不了。

我不能提前适应系统,就选了 Windows 7,虽然我 Windows 也一年多没用过了。

Day 1

早上

晚上没睡好。

早上洗漱时眼睛框断了。

还是经典的杭师大仓前校区恕园 16 号楼,浙江考生的梦魇。

准考证号 ZJ-0175,考场 302B 机房,座位号 B51。

进场

喝口水上个厕所。

考前已经做好最坏的打算,所以进场的时候比较冷静。

今年考场机位明显比前几年宽敞,腿终于可以伸直了。

CSP 我是某排的最后一个座位,一边没人很舒服,而另一边是同学 zjy。

开考

日常开考前玩电脑被监考老师警告。

压缩包密码是广播报的,没听清硬吃两发罚时。

这次 NOIP 压缩包密码是 !noip@Nov29.2025:dream,此后 NOIP 还有 dream 吗……

解压后复制样例,新建代码文件。

我命令行编译懒得写,就用 Dev-C++ 作 IDE,Visual Studio Code 看样例。

比赛测评是 gcc 9.3 的 C++14,可以兼容部分 C++17 特性,例如优雅的结构化绑定,我给编译命令加上 -std=c++17-Wall。改完发现不能编译,应该是编译器版本不对,换成红色的新版 Dev-C++ 就可以了。

T1 交替价格感觉很熟悉,模拟赛好像做过类似的题,但我忘了。

求最大值想到可以二分,写了一坨代码过了小样例,正确性和复杂度没问题,但大样例挂了应该是爆 long long 了,果断使用 __int128 过了

我不确定 __int128 能不能这样用,但先不管了,T1 用了将近半个小时。

赛后发现直接贪心也可以。

巧克力真好吃。

T2 是一道计数题,我比较擅长。考前一周教练开会还说要重点复习,还真考到了。

去年 NOIP2024 T2 也是计数题,那题并不算难。稍微分析了一下感觉不可做,但是还是要思考一下。

先写个快速幂备用,贪心策略什么时候不优是显然的,但推了 2 小时还是不会,开摆做 T3 吧。

根据历年经验 T2 不过肯定拿不到省一,心态有点崩溃。

申请去上个厕所,冷静一下。

巧克力真好吃。

T3 题面比较清新,给树上所有节点赋值,求每个节点子树 mex 之和的最大值。

看上去像思维题,但也做不出来。

巧克力真好吃。

T4 序列询问,显然是 DS 题,我不是很擅长。先写个最基础的朴素暴力 O(qn3)O(qn^3) 不给分。

从地上捡了个 ST 表优化到 O(qn2)O(qn^2),测试点 2,3(n=3000,q=50n=3000,q=505×1095\times 10^9 勉强能过,因为数据卡不满。

测试点 6,7 是特殊性质 A,区间长度固定,每次询问重建 ST 表能做到 O(qnlogn)O(qn\log n),赛后发现用单调队列能优化到 O(nq)O(nq)

测试点 8,9,10 是特殊性质 B,区间上限 R32R\le 32,我的暴力 O(qnR)O(qnR) 不确定能不能过,听天由命吧。

巧克力真好吃。

其他的特殊性质不会,回去看 T3 吧。

赛后洛谷跑出来是 1.4s 左右,幸好 T4 时限是 2s。

巧克力吃完了。

T2 快速幂都写了,甚至忘记 m=2n1m=2n-1 和特殊性质 A 可以直接输出 2n2^n

赛后

13:00:00

比赛结束,选手离场。

楼梯间全是人,不想排队挤出去,我从旁边另一栋楼的神秘电梯下去了。

「别笑,你来你也过不了第二关。」

考完一脸懵逼,估分 [133,176]=100+[0,20]+[8,16]+[25,40][133,176]=100+[0,20]+[8,16]+[25,40]

赛后洛谷 T2,T3,T4 都是黑题,吓哭了。

后面 T2 降紫了,看来模拟赛还是出的保守了。

出题人可以和隔壁物竞联赛坐一桌了。

出分 156=100+0+16+40156=100+0+16+40,T2 挂零,符合预期。156156 还有省一?

不知这次 NOIP 毁了多少人的前程……

思考

学 OI 我得到了什么?

我失去了什么?