刘家炜IOI 2026参赛总结IOI 2026参赛总结2026-08-28 11:44:53
很荣幸能作为中国队的一员参加第38届国际信息学奥林匹克竞赛(IOI 2026)。
这次比赛的地点是乌兹别克斯坦的塔什干。这座城市距离中国较近,当地的时区是UTC+5,与北京时间相差仅3小时。我本来以为不太需要刻意调整作息,但很有趣的一点是,活动的每一天我都是6点钟准时自然醒,然后再看时间决定再躺一会。
比赛前,我们举办了行前会,主要强调了比赛的纪律,也让我们暂时远离学校、家长、教练甚至“为国家争光”的压力,充分地放松并体验这次活动。直到Day2结束以前,我们与跟着来的一些教练和家长都没有见过面。这里要先感谢CCF的领队、副领队和所有观察员老师,他们在这次比赛中不仅没有给我们压力,还为我们提供了健康、放松的后勤保障。
在描述比赛经历之前,我想要先写一写比赛前的训练和准备。赛前的几轮国家队集训,我的集训成绩其实并不算优秀。另一方面,我也做过2016年及以后的IOI真题,但是几乎每一年都会有一些不顺利的情况,恐怕这次也会遭遇类似的困难。结合以上这些经历,我给自己的初步目标是先确保进入金牌线。
在Day1中,比赛接近一半,我在三个题分别获得了47+58+100分。第二题看起来是CNOI较多见的传统题,感觉应该优先思考,但我尝试了一小时后还是没有头绪。剩下的时间里我主要在实现T1的60多分代码,但最后没能调试通过,只通过随机调参获得了1.6分的微小提升。
第一天三个题目总的分数是48.6+58+100=206.6。比赛结束后看到排行榜,发现205分应该比较容易获得,而再突破存在一个较大的难度gap,因为有十几位选手得到了这个分数。一眼看上去非常简单的T2,整个赛场上只有两个通过。赛后我们交流,发现T1在47分之上,一般都是跨过我的60分算法,直接得到80分左右的算法,实现也略简单一些。我感到似乎应该多冷静思考,然后再开始实现。
接下来是Day2的过程。我同样先阅读了三个题目,第一个题目同样是结构比较复杂的通信题。T2是一个有50个测试点的提交答案题,但似乎只需要手动构造。T3虽然是通信题,但它的结构似乎非常简单,很像是CNOI出现过的题目。于是我打算先按3-2-1的顺序做题。
我很快想到了T3的一种通信策略:排序后从大到小贪心往当前最小的组划分。我本来预期直接通过,提交后才发现我的做法根本不对。在T2,很快我得到了大约50分的简单构造。由于这是提交答案题,我猜测后续可以通过启发式搜索来优化构造。对于T1,我对题目复杂的通信方式仍然感到非常困惑。最终,我通过拼包实现了35.5分。
到此为止,我的总分数大约是35.5+55+33=123.5,时间也大约过去了一半。接下来我打算主要先思考T3。
仔细思考后,我发现这个题从小到大排序后贪心分组虽然具有性质(一定是K个组轮流被加入一次),但发现这个通信策略其实难以让第二次运行能够提取出有效信息。于是,我想到先排序后每个组对应一个连续段。思考后我把这个算法实现,但实现完成后又被对拍出的一组数据卡住了。
由于思考的时间比较久,这时候比赛已经只剩大约一个半小时了。转头给T2实现了一个模拟退火算法后,大约只剩一个小时了。但我的分数依旧没有太大提升,似乎与第一天的境况相似。
我此时有点疑虑,难道T3的算法真的很不对?我一时不知道我的想法只有一些小问题,还是根本上就是错的。此时只剩一个小时,我认为既然现在没有时间和精力继续思考T1,T2的提升空间也不高,因此我打算继续做T3。
尝试了几种通信方法后,我发现把代码中一个条件加上取等,也能保持正确性,而且这样就恰好有解了!调整好暴力代码后,我直接提交。在准备优化代码复杂度的时候,发现这个提交直接通过了。
现在只剩大约半个小时了。此时要稳定拿分有两种选择:实现T1的高精度,或者优化T2的构造,但时间应该只够做其中一项。我选择了写T1,写到一半发现比我想象中更难实现,也较难调试,于是我放弃了。剩下的十几分钟里,我尝试补齐T2的部分构造,以及实现T1最后一个子任务的C=63,但因为一个细节错误没有拿到分。
三个题目总的分数是35.5+67.46+100=202.96。后来看到排行榜,我发现第二天比我想象的困难很多,T3只有6人通过,T1无人通过。我的总排名是13名。
在这里,我要先总结一下比赛的体验:
Day2的体验与我之前训练IOI真题时“时间不够用”的感受很相似,因此我在比赛中也有所准备。最终,在三个题目难度和顺序未知的情况下,能够顶住压力解决一个并不简单的问题,我觉得我的训练和准备有了成效,很满意也很开心。
两天的T1都是比较新颖的交互/通信题。虽然我赛前已经特意训练过交互类问题,但训练的内容相对模板化,与IOI的风格有一定差别,因此对赛场上的两个T1依旧不够熟练。这次比赛的题目中,很多子任务几乎对正解没有提示,这一点相比以前的IOI明显不同。后续的选手可以注意这些变化。
还想要提醒接下来的选手一点:有些看起来简单的题目,实际上可能比较困难(Day1 T2以及Day2 T3),因此在卡住一道题目时,更重要的是相信自己的水平和判断。
除了比赛的过程,比赛之外的经历其实更有趣。
报到日的第二天早上,我们安排了练习赛。这次练习赛的题目与去年是一样的,我全都做过,因此也没有很认真地完成所有题目。在练习赛结束时,我们需要把想要在后续两天比赛中使用的物品,例如键盘、自带食物、吉祥物等,留在座位上以供工作人员检查。
这里还有一些关于键盘规则的趣事:今年IOI的竞赛规则原文中说到,禁止带入“有无线连接功能、可编程功能或断电后可存储功能”的键盘。许淇文和赵晟昊同学赛前临时购买的键盘,在出发日发现存在无线连接功能,因此紧急购入了另一款键盘。我的键盘由于有“保存键盘灯光样式”这一“可存储功能”,因此也没有携带。今年大会上似乎在比赛结束后更改了这条规则,消除了这些歧义,并说明键盘灯的特性其实是合规的。
我们原以为主办方会给我们分配双人间,但实际上分配的却是三人间:我与许淇文、赵晟昊同学同住一间,而何宇翔同学与另外两个外国选手一起住。不过这两位外国选手也会说中文,所以他们的沟通与住宿也还算顺利。
在活动的各个阶段,例如在往返的大巴上、场馆的Fun Zone,以及比赛前场馆的大厅等,都有国外的选手主动与我搭话。我能感受到国外的交流习惯确实与国内有不同:在国内,几乎完全陌生的两个人之间是很少主动说话的。也因此,我在各种聊天软件上都新加了一些联系方式,即使我现在也不太熟悉他们。很多外国朋友会比较好奇中国的学习生活和文化,我们通常会挑一些有趣的内容来聊,这也一定程度上缓解了语言不畅的尴尬。
在场馆的Fun Zone,主办方提供了电脑、国际象棋、数独等很有IOI风格的游玩设施。自由活动时,赵晟昊同学通常在与一些会中文的选手玩《三国杀》。这款卡牌游戏在去年的中国队参赛总结中也出现过,看来确实在IOI选手之间有一些知名度。我由于Day1晚上流鼻血没休息好,加上5小时的比赛消耗的精力太多,比赛结束后先去休息室玩了一会儿手机。出来后,仍然看到赵晟昊在玩《三国杀》,许淇文在一旁给他提建议。我了解一些《三国杀》的基础规则,于是也跟着看了一局。晚上回酒店后,发现玩《三国杀》的外国选手们就在我们房间楼上,于是我们三个人都去玩了两局,玩到了晚上10点。虽然大家其实都不是很熟练,但是我们玩得很开心,也体会到了国际OI选手间的友爱。
两天比赛的中间一天,主办方为我们安排了短途旅行。上午去的是Magic Safari,这是塔什干的一个动物园。与国内的多数动物园有所不同的是,这里允许游客给大部分动物投喂园方发放的食物,所以在喂食时能感受一些别样的趣味。
另外三位中国队队友都有各自的特长和优点,并且大家都很友善,我们一起度过了一些愉快的集训时光以及IOI的几天活动,让中国队全程都保持着轻松愉快的氛围,帮助我保持良好心态,体验活动的乐趣,这里也要感谢他们。
在整个活动中,中国队这次的guide名叫Sam。Sam在活动的几天里热情地给我们带队,准时叫我们起床,还帮我们解决了很多健康或交流上的问题。临走的时候,Sam还到机场来送我们离开。虽然在这篇总结中很少提到他,但在几天的生活中能切实感受到他的热心和尽职尽责,这里仍然要特别感谢他。下图是他特意送给我的纪念品。
临走时,我意识到我的所有OI比赛都结束了。相比国内的各种OI比赛,IOI更像是一个“聚会”:比赛不是IOI最重要的部分,而比赛外的其他环节有许多超出预期的乐趣。作为我的最后一次也是最重要的一次OI比赛,这是一段珍贵难忘的回忆。


京公网安备 11010802033127号