APIO 2026 游记

· · 生活·游记

追忆总在不经意间将我裹进泛黄的纸页里。分别又重聚的朋友,推倒又重建的街道,种种线索协助着我从一个具体的时刻出发沿时间的河逆流而上。曾经的日子无法重来,我只不过是一个过客。但我仍然渴望在每一次追忆之旅中留下闲暇时间,在一个场景前驻足,在岁月的朦胧里瞭望过去的自己,感受尽可能多的甜蜜。美好的时光曾流过我的身体,我便心满意足。

——P11831 [省选联考 2025] 追忆 题目背景

省流:35+100+40=175

Day -1 / 2026.5.7

第一次,也是最后一次参加 APIO。

报道日。第一次参加正式赛事,结果也并不重要,就只当来玩一玩。早上坐高铁从山东二轮省集所在的平邑来到北京,中午在高铁上只吃了一桶方便面,饿饿饿。到北京之后在地铁上恰好遇到了从郑州出发的我们学校的其他人,甚至我们到达北京的高铁站都不一样,这么神奇吗。

报道的时候发了很多东西:一个水杯、一个鼠标垫、一个笔记本、几个键盘帽、两个徽章、整整 12 张餐券以及一个 APIO 2026 的包。似乎所有东西的样式都是由北大附中的学生社团设计的,这就是京爷吗 /bx/bx/bx。虽然但是,这个包的开关方式很奇怪,即使在听完志愿者的讲解之后也没能理解应该如何打开这个包,最后在志愿者的上手帮助下才成功战胜。

回到房间之后发现室友是 lovelish,/bx/bx/bx。还是饿饿饿,但是因为马上就要去北大附中吃饭了,于是放弃了点外卖的想法。坐上大巴前往北大附中吃饭,经过认真计算发现如果每天使用两张,在 APIO 结束的时候会剩下很多餐券,难道只能每顿吃两份饭了吗?

吃完饭后探索了一下北大附中,发现北大附中很小,也没有什么有意思的地方。尝试自己离开北大附中去附近转一圈被门口的保安阻止,于是不得不等待大巴发车将我们带回酒店。回酒店后因为有些累,也没有打什么游戏,在十一点半的时候果断上床睡觉。

Day 0 / 2026.5.8

吃早饭的时候没有收我的餐券,但是好像有的人被收了一张餐券,这是怎么事呢。如果早餐要收餐券的话剩下的餐券就很少了。

今天是 IOI 2026 国家队的讲课。「某种意义上,这大概也是 APIO 的重要体验之一:你坐在全国最顶尖的一批 OIer 中间,听着一些极其高深的内容,然后安详入睡。」上午只有第一节课听懂了一道题,后面尝试听了一点发现完全无法战胜,于是直接开始睡觉,顺便研究了一下如何使用 NOI Linux。中午吃饭时发现北大附中有一个小卖部,一张餐券可以当 20 块钱使用,餐券直接原地升值。下午第一节课继续睡觉,第二节课似乎在讲一些神奇的小学奥数题,尝试听了一下,发现有很多我在知乎上都刷到过,不过确实很有意思。

下午吃完饭后是试机和开幕式环节。北大附中的地下体育场居然这么大吗?试机时发现键盘很好用,好评。第一次使用 NOI Linux,研究了一下如何使用 selfEval,写了一遍 candy,然后又对着自己之前的代码抄了一遍 sale,成功在试机中拿到 200 分。

试机后前往礼堂等待开幕式开始。开幕式 dzd 没有来,差评。杜小勇:dzd 在新加坡追星。除去几个领导的无聊讲话,开幕式的节目还是很有意思的,有人机表演武术环节,还有一个不知道叫什么名字的节目很帅,好评。

直到回到房间之后我才意识到 APIO 居然马上就要开始了,才开始感觉有些紧张。我真能拿到牌吗?或者有没有可能能拿到银牌?为了使明天有充沛的精力,晚上十一点就上床睡觉了。

Day 1 / 2026.5.9

比赛日。早上消耗了一张珍贵的餐券才吃到早饭,不过听别人说只要说自己没带餐券就可以直接进去。在车上又按照惯例阅读了一遍 Tarjan 和网络流的代码,但是从来没有过任何用。而且不知道为什么,大巴发车时间巨早无比,到达北大附中之后等待了很长时间才能够进入考场。也许是为了使没有赶上大巴车的人也有时间打车到达北大附中吗?

等待进考场的时候在门口看到了一个女装大佬。回去之后看到他的游记写道:「与此同时,我开始明显感觉到,有人在偷拍我,而且数量还不是一个,有的人偷拍技术比较差,手机角度都没藏好;有的人则明显经验丰富,远远举一下手机就结束了。」那看来我的偷拍技术很差了。

终于进入考场,由于发密码条的速度太慢,9:10 比赛才正式开始。我早就知道 APIO 的题目不按难度顺序排序,于是决定先打完三个题的暴力,再选择比较可做的题认真思考。登录后读了一遍第一页的表格,发现居然三个题都没有子任务捆绑,按测试点给分,这还是 APIO 吗?

看了一下选手目录发现 APIO 居然没有大样例,那很坏了,不过有 selfEval 还是很好的。

T1 的 O(2^nn^2) 的状压 DP 是简单的,特殊性质 A 的插入法排列 DP 也是简单的,我很快就会了 35 分。又思考半个多小时之后,我发现我没有任何办法做到多项式时间复杂度,想到过正解的按照 p_i\not=0 的位置分阶段 DP,但是并没有想到任何状态和转移。最后决定先写 35 分跑路。提交了两次发现都是 0 分,最后发现是因为没有意识到传入的 std::vector 下标从 0 开始导致的,最后在五十多分钟时才找到这个 bug 拿到 35 分。

T2 是一道真正的交互题。我看数据范围发现每个测试点的数据范围都不一样,于是开始单独思考每一个测试点的做法。测试点 #1 和测试点 #2 都是送的,我很快写完拿到了 15 分。接下来思考测试点 #3,很快就提出了往 a 中加入所有 2 的整次幂,先使用 \log_2\log_2 W 次询问二分查找出 d 的位置,再用 \log_2 W 次询问从大往小确定 d 的值的做法,拿到 30 分。又思考了一会测试点 #3 没有什么想法,于是决定先跳过做 T3。

在思考了一会 T3 之后,我只发现了一些显然的性质,但对非平凡做法完全没有任何头猪。又思考了一会 T3 的 ABC 性质都没有什么进展之后,我决定先写一个 O(nq) 的暴力拿到 20 分再说。写完之后提交发现拿到了整整 40 分,我这才意识到 O(nq) 可以通过 n=10^3,q=3\times 10^5,不需要单独再想一个做法了。在比赛进行大概一百分钟的时候,我就拿到了 35+30+40=105 分。

经过综合考虑之后,我觉得只有 T2 比较可做,于是开始认真思考 T2。我很快发现类似于 perm,可以从高位到低位同时完成确定 d 的位置和 d 的值两件事,只需要使用 \log_2 W 次询问,通过了测试点 #3 并拿到了 35+45+40=120 分。

对于测试点 #4,我很快发现测试点 #3 的做法在测试点 #4 能拿到 11 分,获得了大众分 35+56+40=131 分。我很快注意到 3^7=2187,这意味着我需要完美利用返回的 1,0,-1 三种返回值缩小范围。我先确定了和测试点 #3 相同的逐位确定的基本思路,但是不知道如何才能完美利用三种返回值。思考了一会之后,我注意到测试点 #2 就是这样的情况。我逐渐开始有些激动,认为我已经接近 T2 的正解了。

我很快发现如果像测试点 #3 一样取 a3 的整次幂乘以 1,2 的结果,按照测试点 #2 的做法只能靠 d 所在的位置确定 d 的最高位,而无法进一步确定后几位。想要进一步确定后几位我需要使得 a 中的间隔更小,更好地利用 d 所在位置带来的信息。我突然意识到:这本质等价于我测试点 #1 的做法——将 1\sim W 之间的数全部加入到 a 中!而 1\sim 3^7 的数都不超过 W+200,于是我更加激动,确信我已经接近 T2 的正解。

不过我很快意识到如果这样我就无法直接使用测试点 #2 中的做法,而在将测试点 #2 的做法进行推广,从询问值改为询问下标后,我终于解决了这个问题。我怀着激动的心情开始写代码,又在调试的时候发现思路上的一个小问题,但很容易就能修复。终于,在三个半小时的时候,我提交了 T2,等了一会发现拿到了 100 分,很激动啊!我就这样拿到了 35+100+40=175 分。

剩下的比赛时间里,我继续思考 T1 的多项式复杂度做法和 T3 的特殊性质,但仍然没有任何头猪。像 NOIP 2025 赛场上一样,我又回过头来评估 T2 的难度,感觉其实很简单,只有蓝题难度,只是按照测试点一档一档做显得思考时间比较长。应该身边的人大部分都能做出来吧——虽然我在 NOIP 2025 赛场上看 sale 这道题也是这么想的。不过即使这道题很简单,能拿到大众分获得铜牌也是可以接受的吧。

就这样罚坐了一个半小时没有拿到任何分之后,比赛终于结束了。结束前我瞟了一眼旁边人的屏幕,得分是 35+56+40=131,那看来还是有希望能够拿到 Ag 的吧。出考场遇到了其他人,我惊讶地发现认识的人里面没有一个人通过 T2,这又是怎么事呢?于是感觉 Ag 稳了。

有意思的是,虽然广播中专门强调不允许把那四张牌拿走,但是我犹豫了一下之后还是把四张牌都拿走了,毕竟总不能因为这个取消我的成绩吧。

吃完饭后去看了一眼 APIO 嘉年华是怎么事,发现居然是玩小游戏收集印章兑换奖品。最开始说是收集满八个印章能换一个 \pi 的徽章,收集六个印章能换几个键盘帽。我先尝试了一次投篮球,不知道是因为太长时间没有打篮球了还是什么原因,居然投了五次都没投进 /ll/ll/ll,又发现队伍突然变得特别长,于是开始摆烂看别人玩小游戏,只随便拿了两个印章。过一会我又问了一次,发现标准已经降低到 7/5 个印章了。rcq 很快拿到了七个印章,获得了一个 \pi,还进行了合影留念。我在 mhh 收集到五个印章换了键盘帽之后把他的卡借过来又换了一次键盘帽。听说后来标准又降低到只要有四个印章就能换任何奖品了。

很快到了查分时间,仍然是 35+100+40=175 分,没有挂分。查完分发现 APIO 嘉年华还有很多奖品没有领完,于是我又拿着 mhh 的那一张卡领了一个 \pi 的徽章。可惜这一次志愿者把卡收走了,但是用这一张卡领了三份奖品也算是发挥了这张卡全部的价值了。好像有人拿着只有两枚印章的卡还是领走了一份奖品,看来印章也在不断升值。

查完分之后就是讲题环节,讲题人只是在对着 PPT 念,感觉没有怎么听懂。原定一个半小时的讲题环节半个多小时就讲完了,于是在吃完饭后要等很长时间才能坐大巴回到酒店。饭后和同学聊天时才发现,这次的题居然是中国自己出的,洛谷上叫 APIO 2026 中国区,区区?!怪不得 T1 和 T3 都有着很浓的 CNOI 风格,并且按测试点计分。当时我还感觉有些可惜,没能有机会在赛场上打一次真正的 APIO。

回到酒店,闲得没事干写了一篇 T2 题解,拿到了 T2 题解区的最高赞,也是我写过的赞数最多的题解。在玩了一会异形工厂 2 之后,rcq、mhh 和 lrh 叫我出去吃夜宵,于是我们在吃完晚饭的情况下又吃了一顿铜锅涮肉,好撑。回到酒店之后已经是十二点多了,直接睡觉。

Day 2 / 2026.5.10

早晨起床之后发现眼镜不知道掉哪了,经过一段时间的寻找后终于赶着发车时间之前在床缝中找到了我的眼镜。找到眼镜之后又发现我的房卡也神秘消失了,于是不得不不携带房卡出门。

上午讲课时已经预料到了我无法听懂任何内容,于是坐到了一个在插座旁边的座位,于是直接拿出电脑打了一会杀戮尖塔 2,遇到了很爽的一局并且没有碰到门扉,高兴。不过讲课怎么在讲炒股?这对吗?听说 APIO 2025 的榜是比赛完下一天上午出的,讲课的时候一直在群里关心榜有没有出来,但是直到讲完课也没有任何消息。

中午吃完饭后发现自己还有四张餐券,我想在小卖部里进行兑换,但是因为大家都在兑换,排队的人太多而放弃。十二点五十就出发开始社会实践,困困困,而且天气特别热。首先去的中关村会展中心没啥意思,随便听了听。后来去北大,在校园里见到了云浅知处 /bx/bx/bx,不过感觉北大也没啥特别的地方。

在回北大附中的路上看到群里在发闭幕式的座位表,于是群 u 开始通过座位表推测分数线,虽然最后被证明不太准确。回到北大附中之后我直接冲向小卖部将我的餐券全部用完,买了整整 60 块钱的一袋东西,不过事后看来我应该买苹果汁的——一张餐券能换整整四瓶苹果汁,好喝完了。吃完饭后在校园里游荡的时候听说出榜了,群 u 又开始使用 AI 计算金银铜牌分数线,但每个人算出来的仍然都不一样,最后正式的线是 \text{Au}:196,\ \text{Ag}:155,\ \text{Cu}:116,金钩分数线是 146。zyb 居然只恰好拿到了银首,有点可惜。

dzd 居然来到了闭幕式,好评。介绍领导介绍到 dzd 上台发言的时候掌声雷动,与其它领导形成了鲜明的对比。短片里,“学生们考得都很不错,就是分数有点低”,一位教练如是说到。颁奖环节拿到了 \text{Ag} 和金钩,好评,而且我的排名 109/640 好像还并不低?T2 有这么困难吗?dzd 的讲话也是很有意思的。闭幕式很快就到了尾声,APIO 2026 圆满结束,感觉还有些意犹未尽。

晚上回到房间之后开始和 mhh 一起打 Baba Is You,不过基本上一关都不会。睡睡睡。

Day 3 / 2026.5.11

返程日。坐上回郑州的高铁,车上继续和 zxh 一起打 Baba Is You,仍然基本上一关都不会,这是怎么事呢?回到了郑州,也就代表着 APIO 2026 完全结束了。

虽然之前没有参加过任何正式赛事,但参加这次 APIO 的体验确实很不错:得到了很多北大附中自己设计的纪念品,志愿者的服务很到位,开幕式和闭幕式的节目都很有意思。APIO 2026 中国区的题出得也很不错,有着较强的区分度,T1 和 T2 也都很有意思。能拿到 \text{Ag} 我也已经心满意足了。

Day 4 / 2026.5.12

晚上研究了一下真正的 APIO 2026 的题目,发现是一道构造题、两道通信题,完全不会啊。那看来不用遗憾没有打过真正的 APIO 2026 了,APIO 2026 中国区也是很好的。

Day 11 / 2026.5.19

终于拿到了金钩。现在看来,在我打的这么多场比赛里,发挥得很好的也只有 CSP-S 2023、CSP-S 2024 和 APIO 2026 了。而巧合的是,也正是这三场比赛让我拿到了 6,7,8 级钩。我更希望几个星期之后,我能在 NOI 2026 中获得 9 级钩,往这个列表中再加入一项,但也许这只不过是一个虚无缥缈的梦想罢了。求求 NOI 2026 对我好点 /kel。