每年三月,有一群少年走进考场,带着两年的训练、一背包的模板,和一颗随时会碎的心。
他们管这叫联合省选。也有人管它叫"联合省"——因为考完之后,你的确会省掉很多东西:省掉头发、省掉睡眠、省掉自信,以及,省掉你的 OI 生涯。
我啃了五年间 150+ 篇省选游记、退役记、吐槽贴、知乎问答,从 2022 到 2026,从洛谷到博客园,从初一萌新到退役老狗。然后我发现——踩的坑基本都差不多,崩溃的方式也差不多,甚至连写出的句子都惊人地雷同。
这说明什么?说明每一届 OIer 都在重复同样的悲剧。人类的本质是复读机,OIer 的本质是——在同一个地方反复摔倒然后写一篇游记。
好,系好安全带。这是一份用五年、上千人的血泪换来的省选踩坑大全。看完要是还能笑得出来,说明你是真的经历过。
数据说话:这片战场有多惨烈
坑位一:CE 才是第一杀手
论省选第一翻车姿势,不是不会做,而是——编译没过。
你写了三个小时的代码,信心满满地交了,然后弹出红字:Compile Error。
那一刻的沉默,震耳欲聋。
2024 名垂青史的 abs(__int128)
2024 年省选产生了一个载入 OI 史册的梗:abs(__int128)。
事情的经过是:D1T1 需要算绝对值,很多选手自然写了 abs(__int128)。但在 C++11/C++14 标准下,__int128 是 GCC 扩展类型,标准库的 abs()没有给它的重载。所以这玩意儿——编译不过。
更荒诞的是,有省队的绝对核心、全省最顶尖的选手,因为这一行代码直接爆零,最终退役。他的名字叫 ydtz(翼德天尊),别人在游记里这样写他:
还有选手写了一个自定义的 abs(__int128),洋洋得意,"我庆幸我写了个给 __int128 的 abs。但是为什么,为什么会这样呢。唉,退役了。"——因为你的自定义函数和标准库重名了,兄弟。
另外,有些考场是32 位系统,__int128 直接不被支持。考场老师现场发宏定义:#define int128 long long。你觉得这样能对吗?能吗?
2023 freopen の诅咒
经典永流传。freopen 注释掉忘记取消,从 CSP 到 NOIP 到省选,每年都有人栽。
这位选手最后总分 247,好在还是进了 A 队。但不是每个人都有这种运气。
2025 2026 环境问题永流传
2026 年,又有考场的 Windows 没配 g++,选手到了考场上要先手动配环境变量。
键盘按键重复输出——2026 年还有这种问题。鼠标滚轮不灵敏。教室"跟监狱似的"。厕所是露天的,"非常有观赏性"。
五年了,CCF 的考场环境跟省选题目难度一样,就没有好过。
坑位二:T1 陷阱——看似简单,实则杀猪
省选有一个亘古不变的规律:每年考完,都有一半的人说 T1 是签到题,另一半的人说 T1 杀了三个小时没调出来。
这两拨人见面之后互相觉得对方是傻逼。然而他们可能都调不出来。
T1 差分/线段树签到,但有人线段树写假,有人差分被 hack。"Day1 的假做法竟然拿了 100 pts,难以置信。"
号称 0.5/5 分的史上最差 T1 "季风"。大分讨,分类讨论极其繁琐。"题目名字叫做'季风',这,我都不敢想象如果题面不形式化的话该有多史。"——这是选手原话。
中位数相关。"30min 就会了",然后调了 2.5 小时。"2.5h 被 T1 硬控。"大众分 128,高水平 240+。
期望树形 DP。重链剖分 + 多项式求逆 + 退背包。出题人你是不是觉得自己很幽默?
省选题是可以做的——但做不做得对是另一回事。
坑位三:交互题——出题人的新玩具
2026 省选干了一件大事:在 Day2 出了交互题。
省选历史上第一次。没有任何预告,没有任何心理准备。选手走进考场,打开题面——
有人不会调用交互库。有人交互次数超限直接扣分。有人花了 3 个小时,就为搞明白这交互到底怎么玩。
出题人的思路大概是:"你们不是都在学 NOI 的题吗?那我就考 IOI 的形式。"
但不得不说,这题确实区分了人——有人借此翻盘,有人因此直接退役。
省选正在向 NOI/IOI 靠拢。交互题、集合论、多项式——如果 NOIP 2025 已经是"NOI Plus"(黄紫黑黑),那么省选下一步会不会直接上量子计算?建议 2027 选手提前学习围棋。
坑位四:大样例——出题人最大的谎言
"大样例过了,稳了。"——这是 OIer 自我安慰的顶级话术。
大样例的本质是出题人给你的一张"好人卡"——它告诉你"你看起来还行",但实际上是"你实际上可能是个废物"。
一年又一年,选手在大样例上跑得飞起,然后被评测数据一刀砍死。大样例弱、大样例水、大样例不全——这五年唯一的进步是,2023 年出题人被吐槽"只准备了两个样例",于是后来增加了数量——但质量嘛……
坑位五:命题质量——一年比一年会玩
如果说 CE 是"你没做对",那命题质量差就是"出题人没做对"。
2024 载入史册的 0.5/5
2024 年 D1T1 "季风"在知乎被评 0.5 / 5 分。选手原话:"D1T1 是真的屎。"
这是一道大分讨题——没有精妙的算法,没有优雅的结论,纯靠分类讨论堆砌。你写对了说明你耐心好,你写错了说明你正常。这不是在选拔选手,这是在选拔人肉编译器。
而同年的 D1T2 贡献了另一个名场面:大样例弱到假代码随便过。有选手赛后发现自己的代码能过 xor4~7 的大样例,但过不了 xor3——也就是说,大样例的强度还不如选手随手造的一组数据。
2025 文艺青年出题人
2025 年 D1T2 的题面背景写得极为动人,选手读完纷纷感动——然后开始做题,然后开始骂人。
这也是省选的老传统了:题面越美,题目越鬼。建议以后出题人直接在题面第一行写"本题可能引起不适",给选手一个心理准备。
2023 相对良心的一年
2023 年反而是被夸"比较良心"的一届——部分分给得足,T1 是真正的签到题。但 Day1 的封面出了印刷事故,D2 两题博弈论串联导致"会博弈的通吃,不会的等死",区分度依然一言难尽。
2026 交互试验田
交互题本身评价尚可("正常蓝题"),但放在省选里是否合适争议很大。T3 的空集嵌套比较更是被群嘲:
出题人可能觉得自己很幽默。但选手觉得这玩意儿"不是人能拿分的"。
2023 良心 → 2024 翻车(0.5/5) → 2025 文艺但阴间 → 2026 放飞自我(交互+集合论)
趋势:出题人越来越自由,选手越来越痛苦。
坑位六:时间分配——一场豪赌
省选现场最经典的剧目是:T1 调了 3 小时 → 心态崩了 → T2/T3 暴力没写 → 出分发现 T1 还挂了 → 退役。
这出戏每年上演,从不缺席。主演换了,剧本没换。
T1 和 T2 之间永远隔着一道天堑,名字叫 "我再调五分钟"。这五分钟,往往就是三小时。
你在 T1 上多花的每一分钟,都会变成 T2 暴力少拿的分。两者之间的比例大约是 1:3——比新疆大盘鸡配米饭还稳。
坑位七:心态——你以为你是来写代码的?
不,你是来参加情绪管理期末考试的。代码只是附加题。
2025 年有一位选手在赛后做了一个惊人之举——让 DeepSeek 写了一段话狠狠骂自己:
2026 年有选手因为 void 写成了 int,Day2 T1 从 61 分直接归零,总分从 181 掉到 120——"耻辱柱上之钉",这是他自己起的标题。
还有选手在考场外目睹了充电宝自燃——对,2026 年山东考场有人用两个充电宝互相充电,把走廊给点了。第二天 CCF 紧急通知禁止带充电宝。
2026 年省选的最大受害者:充电宝。比选手还有存在感。
年度灾难大赏
疫情延期/取消。江西赛区直接没考成。有选手 Day1 前失眠只睡了不到 5 小时,Day2 看到括号序列直接心态崩塌。初三选手:"三年 OI 一场空,高中努力吧。"
Day2 两题博弈论,无数人原地去世。有选手 T1 没判"两个红棋走到同一个位置不合法"从 85 分挂到 20 分——65 分就因为这行 if 没写。教练敬酒时情绪崩溃,五年生涯涌上心头。
abs(__int128) + 32 位系统,双重暴击。D1T1 被骂"屎",0.5/5 分。知乎锐评:"联合省选 2024 是一个不存在的比赛。"
T1 看似简单实则杀猪,D2T1(推箱子)成为翻车重灾区。写 4 小时调不出来,和暴力同分。"希望大家永远忘了我"成为年度流行语。
交互题首秀 + 充电宝自燃 + 集合论 T3(∅ < {∅} < {∅, ∅, {∅}})。选手:看了半天没看懂。充电宝:最终赢得了比选手更高的关注度。
省选文学金句大赏
说实话,OIer 的文笔是被省选逼出来的。如果不搞竞赛,这些人可能一辈子也不会写出这么动人的东西。以下是我从 150 多篇文章里挑出的最佳金句:
保命建议:给未来的省选选手
以下建议来自 150 多篇游记的血泪总结,免费赠送,建议打印贴墙上:
abs(__int128)。
自己写一个 my_abs,不要和标准库重名。不要问为什么,你不想成为下一个 ydtz。
freopen 注释。
这是 OI 界的"出门四件事":伸(freopen)手(scanf)要(printf)钱(return 0)。不对,是"检查 freopen 有没有被注释掉"。每年都有人挂在这上面。
写在最后
五年,150 多篇文章,几千名选手的故事。我在这些文字里看到的事情其实很简单:OI 没有放过任何一个人。
高一选手、初二选手、女选手、弱省选手、强省选手、文化课回归选手、退役复活选手——所有人都被省选按在地上摩擦过,区别只是摩擦的角度和力度不同。
但有意思的是,几乎每一篇游记的结尾,不管前面写了多少痛苦的调试、崩盘的心态、挂分的绝望,最后一句往往都是某种程度的释然。有的人说"Keep Dreaming, Remain Loving",有的人说"希望大家永远忘了我",还有的人引用了一句诗然后默默点开 VSCode 开始写下一道题。
还有一位选手在失意后写下了一段年终总结——这段话,我觉得可以作为这篇文章的结尾:
2027 省选加油。
记得检查 freopen。
别写 abs(__int128)。
充电宝放家里。