黄洛天IOI2024参赛总结2024-09-25 15:25:12阅读量:2

 
 

能够作为中国队的一员参加2024年国际信息学奥林匹克竞赛(IOI2024),这份殊荣让我感到无比自豪。特别感谢同行的老师们在比赛前一天为我们翻译题面,大大节省了我们比赛中理解题目的时间。

除了比赛本身,与来自世界各地的选手交流也是此次IOI中难忘的回忆。选手们都非常友好热情,大家带来了各自国家的特色礼物,我们互相交换。中国队的礼物在短短几天内就全部送出,让我们很遗憾没能回赠一些后来的朋友。中国队的向导是一位刚接触算法竞赛的大学生,他在整个赛程中给予了我们很多的帮助。他不但认真负责而且非常热情,他在考试之前送给了我一个在埃及文化里象征护身符的礼物,这让我非常感动。

比赛间隙,许多选手主动来找我们合影留念,讨论各种OI相关的问题。大家最感兴趣的话题之一是不同国家的国家队选拔机制。当外国选手听到我们讲述中国队的选拔过程之漫长、赛事之繁多、规则之复杂时,无不投以惊叹的目光。通过与他们交流,我体会到 IOI 不仅是一场比赛,更是不同国家、不同文化背景但都热爱着算法竞赛的一群年轻人的集会。

IOI的比赛分为两天进行。第一天的比赛一开始,我选择先仔细阅读题目,并对每道题目进行了初步思考。A题较为简单,只用对询问扫描线处理一下每个连续段的信息即可。B题是通信题,限制非常紧,标算应该是一个非常简洁的构造,但我并没有发现这个构造。C题有一个凸优化的暴力,应该可以分析一些性质去贪心。

我首先编写了A题的代码,在1小时时通过了这个题目。然而,随后的比赛并不顺利。我在后两道题的暴力解法上陷入了瓶颈。尤其是在B题,我对通信类题目并不擅长,因此并不能确认B题难度。接下来的1.5小时内,我集中精力研究如何只花费O(1)的额外询问次数,但却没有找到更好的优化思路。此时我仅会O(log n + log T)n为压缩包大小,T为询问组数)的随机做法,我忽略了可能存在的O(log n)做法,直接去思考正解,这是我在比赛中犯下的一个错误。

在时间紧迫的情况下,我需要先保证C题获得一定分数。C题的部分分做法都比较直接,我根据这些做法猜测了一个结论。但我并不能完全确定其正确性。我选择了比较保守的策略,先一档一档部分分地打。对于前面几个部分分,我采用了一种相对复杂的实现方法,虽然看起来具有一定的扩展性,但这导致我花费了过多的时间。等我拼完部分分时,比赛时间仅剩1小时。在这最后的时间里,我可以尝试C题的正解或进行B题。前者不成功便成仁,后者即使只有很小的提升,也能额外获得一些分数。处于这种想法,我再次思考B题的更多做法,但仍然没有任何突破。最终,我简单给B题进行了常数优化,这一天的比赛以一种不甚理想的状态结束。

第二天的比赛,我仍然先阅读了所有题目,并对每道题有了大致的思路。A题是性质题,需要我对结构有一定的刻画,部分分都不平凡。B题是数据结构题,分析一下连续段的性质应该不难。C题是与图论相关的交互题,部分分比较平凡,也具有一定提示性。

首先,我决定从C题入手,因为这道题可能在询问次数上会被卡常数,我需要留出一定时间卡常。幸运的是,我的担心并未变为现实,在随机数据下我的只需要约2250次操作,远远没有到达上界。不幸的是,我的程序在最后一个subtask上出现了答案错误,但我本地的拍子却检查不出错误。在接下来漫长的调试过程中,我发现是因为一个小细节没有处理好。修正错误后,我终于完成了这道题,但此时距离比赛结束已经只剩下3个小时了。

接下来,我转向B题。这道题的思路相对简单。我迅速理清了思路,用了大约半小时完成了这道题。

最后是A题,这是一道结论题,部分分涉及一些特定的性质。我针对这些性质进行了猜想,并获得了一个完整的做法。我采用了保守的策略:首先编写代码验证部分分猜想的正确性,然后再尝试实现完整的解法。这个过程中,我低估了部分分的实现难度,最终在比赛的最后一小时内仅获得了28分。

虽然遗憾未能拿下更多分数,但我在过程中学到了很多。

回顾这两天的比赛,整体表现不能说好,在一些细节上仍然有很多可以改进的地方。比如我在时间紧迫时往往会采取过分保守的策略,导致失去了获得更高分数的可能性。两赛中,我都在拼部分分前一定程度上低估了代码的实现难度,导致在部分分上浪费了过多的时间。这些都是技术上有待改进的方向。

除此之外,我也从一些非技术性的事情中吸取了教训。比如,二试时我把关闭的手机带入考场被裁定违规。这件事让我深刻意识到自己在规则意识上的欠缺。赛前我并没有仔细地阅读 IOI 规则文档,忽略了这些细节,这导致我误以为其与国内比赛是一样的,只要关闭的手机放在书包里,而书包放在场内规定的地方也可以。在现场志愿者提出了没有统一存包处可以将书包放到我脚下时,我也没有冷静下来处理,而是抱着“多一事不如少一事”的心态选择了听从志愿者的建议。这种心态也是我在未来应该尽量避免的。

最后,我想对一路上支持和帮助过我的人表达最诚挚的谢意。感谢中国计算机学会给予我这次宝贵的机会,感谢领队老师和教练们的悉心指导与无私付出。感谢我的家长、朋友和同学们在我备赛和参赛期间给予的关心和鼓励。正是你们的支持和陪伴,才让我在这次比赛中收获了如此多的成长和感悟。

虽然比赛已经结束,但我相信,这段经历将永远铭刻在我的心中,成为我今后前行路上的动力。期待未来有更多机会与大家再会!