APIO 2026 游记

· · 生活·游记

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

5.7

报道日,我们学校有六个人能够参加 APIO 2026。早上 zxh、mhh、lrh 和我从山东二轮省集所在的平邑出发,rcq 和 wyr 从郑州出发坐上高铁。中午在高铁上只吃了一桶方便面,饿饿饿。下午一点到达北京后,虽然我们两队人在不同的时间到达了不同的高铁站,我们仍然在去友谊宾馆的路上奇迹般地在同一辆地铁上相遇,也许这个世界就是这么神奇。

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

回到房间之后仍然饿饿饿,但是因为马上就要去北大附中吃饭了,于是放弃了点外卖的想法。坐上大巴前往北大附中吃饭,经过我认真的计算,发现在 APIO 结束的时候会剩下很多餐券,不知道应该如何使用,难道只能每顿吃两份饭了吗?吃完饭后探索了一下北大附中,发现北大附中很小,没有什么有意思的地方。尝试自己离开北大附中去附近转一圈被门口的保安阻止,于是不得不等待大巴发车将我们带回酒店。回酒店后因为有些累,也没有打什么游戏,在十一点半的时候果断上床睡觉。

5.8

吃早饭的时候没有收我的餐券,但是好像有的人被收了一张餐券,这是怎么事呢。

今天上午和下午是 IOI 2026 国家队的讲课。上午只有第一节课听懂了一道题,后面尝试听了一点发现完全无法战胜,于是直接开始睡觉。吃饭前研究了一下如何使用 NOI Linux。中午吃饭时发现北大附中有一个小卖部,一张餐券可以当 20 块钱使用,餐券一下子就值钱了。下午第一节课继续睡觉,第二节课似乎在讲一些神奇的小学奥数题,尝试听了一下,发现有很多我在知乎上都刷到过,不过确实很有意思。

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

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

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

5.9

比赛日。早上消耗了一张珍贵的餐券才吃到早饭,不过听别人说只要说自己没带餐券就可以直接进去。在大巴上又阅读了一遍 Tarjan 和网络流的代码,虽然我每次比赛前都要这样做,但也从来没有在赛场上用到过 Tarjan 和网络流。而且不知道为什么,大巴发车时间巨早无比,到达北大附中之后等待了很长时间才能够进入考场。

由于发密码条的速度太慢,9:10 比赛才正式开始。因为 APIO 的题目不按难度顺序排序,我提前就确定好了先对三个题进行基本的思考并写完暴力分,再根据我感觉的题目难度进行思考的策略。打开题目后,我发现每个题居然都是按测试点给分,而不是以前 APIO 中的子任务,感觉有点奇怪。

我先按顺序做题,很快就会了 T1 的 O(2^nn^2) 做法以及特殊性质 A,能够拿到 35 分。又思考半个多小时之后,我发现我没有任何手段只记录多项式级别数量的状态,又枚举了连续段 DP、容斥、贡献延后计算等常见方法也没有任何头猪,于是决定先写 35 分跑路。实现时还因为没有意识到传入的 std::vector 下标从 0 开始找了一会 bug,最后在五十多分钟时拿到 35 分。

跳过 T1 继续看 T2,发现是一道交互题,并且居然不存在一个测试点的数据范围包含其它所有测试点,于是我开始单独思考每一个测试点的做法。测试点 #1 和测试点 #2 都是送的,我很快写完拿到了 15 分。接下来思考测试点 #3,很快就提出了使用 \log_2W+\log_2\log_2 W 次操作,先二分查找 d 的位置,再从大往小确定 d 的值的做法,拿到 30 分。又思考了一会测试点 #3 没有什么想法,于是决定先跳过做 T3。

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

综合考虑之后,我觉得只有 T2 比较可做,于是开始认真思考测试点 #3 中如何才能不先确定 d 的位置,省下 \log_2\log_2 W 次操作,并发现从高位到低位枚举可以同时完成确定 d 的位置和 d 的值两件事,通过了测试点 #3 并拿到了 45 分,超过了最终的铜牌分数线。

开始观察测试点 #4,我很快发现测试点 #3 的做法在测试点 #4 能拿到 11 分,拿到了大众分 35+56+40=131 分。我很快注意到 3^7=2187,这意味着要完美利用返回的 1,0,-1 三种返回值缩小范围才能通过。我先确定了和测试点 #3 相同的逐位确定的基本思路,但是不知道如何完美利用三种返回值,思考了一会之后,我突然注意到测试点 #2 为利用三种返回值的方式给出了提示,我逐渐开始激动起来,认为我已经接近 T2 的正解了。

但是我很快发现我之所以能完美利用三种返回值,是靠 d 的位置带来的信息。如果像测试点 #3 一样只令 a 中有三的整次幂乘 1,2 的结果,我在确定 d 的最高位后,就无法再利用 d 的位置确定后几位的值。这时我意识到,如果再往 a 中加入间隔更小的数更好地利用 d 的位置,这本质等价于我测试点 #1 的做法——将 1\sim W 之间的数全部加入到 a 中。我很快发现这里我需要将 1\sim 3^7 的数加入到 a 中,数的值恰好都不超过 W+200,于是我更加确信我已经接近 T2 的正解。

在对测试点 #2 的做法进行推广之后,我终于能够完美利用三种返回值,在 7 次操作内确定 d 的值。怀着激动的心情,我开始写非常短的代码,调试的时候发现思路上的一个小问题,但很容易就能修复。终于,在三个半小时的时候,我提交并通过了 T2,拿到了 35+100+40=175 分。

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

罚坐了一个半小时没有拿到任何分之后,比赛终于结束了。虽然广播中说不允许拿走那四张牌,但是我犹豫了一下之后还是把四张都拿走了。出来考场遇到了其他人,我惊讶的发现认识的人里面没有一个人通过 T2,于是感觉银牌稳了。

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

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

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

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

5.10

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

上午讲课时坐到了一个在插座旁边的座位,于是直接拿出电脑玩了一会 14 种扫雷变体 2。觉得有些无聊后开始打杀戮尖塔 2,遇到了很爽的一局并且没有碰到门扉,高兴。不过讲课怎么在讲炒股?这对吗?听说 APIO 2025 的榜是比赛完下一天上午出的,讲课的时候一直在群里关心榜有没有出来,但是直到讲完课也没有任何消息。

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

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

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

晚上回到房间之后开始和 mhh 一起打 Baba Is You,不过基本上一关都不会。5.11 坐上回郑州的高铁,车上继续和 zxh 一起打 Baba Is You,仍然基本上一关都不会,这是怎么事呢?回到了郑州,也就代表着 APIO 2026 完全结束了。

感觉 APIO 2026 在北大附中办得很不错:发了很多北大附中自己设计的纪念品,志愿者的服务很到位,开幕式和闭幕式的节目都很有意思。APIO 2026 中国区的题出得也很不错,T1 和 T2 都很有意思,并且有着较强的区分度。感觉我应该有能够想出 T1 的多项式时间复杂度做法的实力,但能拿到 \text{Ag} 我也已经心满意足了。希望在 NOI 2026 时也能有着很好的发挥。

5.12

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

最后,希望 NOI 2026 对我好点 /kel。