ICPC 世界总决赛 2024
参加一年一度,今年三度的总决赛。
今年九月份继续参加这个一年一度,今年三度的总决赛。本来今年就一度,去年两度的,谁让埃及的那场也移到今年了。
这已经是第三次以裁判的身份参与总决赛了,心情比以往平静了很多,仿佛已经成了日常。
当时,哈萨克斯坦对中国公民是免签。本来以为这次会是最顺利的一次,然而,这个国际航班果断又给我上了一课。
我本来买的是汉莎航空的往返航班,从旧金山飞到法兰克福转机,然后直接到阿斯塔纳的航班。这个航班有一个问题是,它在法兰克福转机要坐小火车换航站楼,然后我就不知道到底需不需要入境。按理来说,法兰克福这么大的国际中转站,国际转机区肯定是全封闭的,小火车自由通行没问题。但是我翻遍了该航司的官网、该机场的官网,也没找到实锤说肯定没问题。只是读下来,话里话外的意思都是,有个独立的“国际转机区”,你只要待在里面就不需要入境。最终我还是无法确定,但是选择相信它。
然而更大的幺蛾子还在后头。结果临到出发前三个星期,返程从阿斯塔纳到法兰克福的航班取消了。这直接导致整个行程要作废。本来一个航班取消的话,你直接改签到一个其他时间的就好了。但是当天就那一个航班啊,这要怎么改签。如果换第二天的航班,那之后法兰克福和美国之间的航班也是隔天的,这一下要在法兰克福机场待超过24个小时。这下要了亲命了。
于是,这航线直接没法坐了,只能全部重订。钱倒是退了全款,但是麻烦。而且临近日期,机票价格一般会上涨。然后我查了一下,从欧洲转机的,对我来说就没有能坐的了。比如有从英国转机的,但是要换机场,然而显然我没有英国签证。再比如在波兰转机,在华沙机场待20个小时,然后前后不是一个航司运营,是否需要入境未知,然而显然我没有申根签证。这些机票给我看抑郁了。有些时间非常好的航班,比如在伊斯坦布尔转机的,因为时间过于临近,已经没了。
这下怎么办,直接去不了了?
然后我冷静下来一想,阿斯塔纳跟旧金山时差刚好12个小时,那岂不是另一个方向也可以考虑?然后我就看了从另一个方向环球的航班。果然有啊,最佳地点就是在中国“转机”。谷歌上的搜索结果完全不包含这种,因为这已经算不上“转机”了。不是联程票,你大概率需要入境。我搜索的时候,是中国往返美国加中国往返哈萨克斯坦两张票分别搜的,然后时间果然很合适。而入境中国对我来说完全不是问题。所以当即决定,就这么走,马上订票。
只能说北京机场救我一命。不然这场总决赛我怕是去不了了。
最终,我艰难地来到了阿斯塔纳。跟其他人聊过才知道,很多人都在那个被取消的航班上,然后都重订了。不过美国护照的话,在欧洲转机方便得多,也没有我后面那么多事了。
今年要说有什么新的变化,那大概是 Codeforces 世界排名第一的选手 Gennady Korotkevich,也就是 tourist,加入了裁判组。因为当裁判只需要解题能力强,不需要“快速”解题能力强,于是很多裁判要么不参加网上的比赛,要么评分都不是很高。这直接导致了有时候,当有裁判在论坛里给人解释当时比赛的情况时,会被人质疑“你谁啊”。从今往后就再也没有这个烦恼了。
还有就是,今年我们第一次用 AI 生成题目的配图。效果相当好。
比赛前几天,我们忙里偷闲,又用了一天时间,在阿斯塔纳做了城市观光。其实主要就是步行去参观了阿斯塔纳大清真寺。
只能说跟网上的照片是一模一样了。大清真寺内部建造十分精致。以及能拍到一张完全没有人的照片也是很不容易的。
然后步行回来的途中,在大街上,我们还看到了很多这种宣传画。文字看不懂,但是看图像是哈萨克斯坦特色的民族运动会。不懂就问:这个训鹰也是运动项目么?
本次总决赛,开幕式地点位于总统中心主大厅。这里安检相当严格,堪比机场。而因为每个包几乎都要翻开来看,官方给的建议是,别带包来。但是按照行程,如果选手参与了之前的行程,他很难不带包,除非把包扔给教练让他们带回宾馆。于是很多人都带了包。
我压根没参加之前的活动,所以来得很早,场地还没有人,只有欢迎乐队。
然后我就看着选手们陆续带着包来安检,安检了整整一个小时还没安检完。
开幕式就不提了,反正翻来覆去也就是那些东西。我已经数不清我参加过多少次开幕式了。
而在正式比赛日之前,还有一天官方组织的参观活动,参观的是一个科技馆类似物。外面看是这样的。这是一个球形建筑,你从外面就能看到里面是一层层的。参观方式就是坐电梯到最高层,然后一层一层往下走,边走边参观。
整个场馆大部分的文字讲解都是三语:哈萨克语、俄语、英语。而很多官方人员都会三语,也是非常厉害了。我在这里遇到了以前学校里的副领队,他懂俄语。我问他俄语跟哈萨克语有多大区别,在我看来字母差不多,也可能是因为我都不认识。他说差别还是挺大的,完全不同的两种语言,他反正是看不懂。
比赛场馆长这样。
场馆内部提供了很多娱乐设施以及科技展台。这也是老传统了。选手这些天没事都可以来玩,以及比赛的时候都是教练和闲杂人等在玩。而我们的宾馆楼下甚至还有一个蒙古包类似物,里面是这样的。
感觉没事闲着的时候往里面一躺,一躺躺一天,也是挺带劲的。
然后本来以为这次的比赛到此就可以顺利地进行了,没想到最大的幺蛾子在比赛前一天晚上出现了。
当天晚上在酒店,我都已经洗澡准备睡觉了。就在我洗澡的时候,来了三个电话,没接到。然后等我洗完澡一看,说是出大事了,题目有问题,速来。之所以叫我,是因为那题是我出的。我就不说是哪个题了,如果有读者了解过全部的题目,应该能自行猜出。
起因是这样的。我们一般比赛前一天会把题目共享给比赛讲解员,让他们提前知道题目是啥、怎么做,这样他们就可以提前录制题解,比赛的时候也能更好地分析。然后这个题,开头先是一个分类讨论,根据贪心只有两种情况。然后他们在录制题解的时候,越录越觉得不对劲,然后就说,为啥只有两种情况啊?
然后本着严谨求实的工作精神,有人写了个暴力对拍,也就是写了一个枚举所有情况的程序,然后看哪个解最优。然后他们发现,这程序跟官方数据给的结果不一样,这个程序结果更优。
完蛋,那肯定是暴力枚举对啊,官方数据有错,标程全错。
这个时候已经快要晚上九点了,距离比赛开始还剩12个小时。然后他们开始摇人。我们好多人都被摇下去了。我们发现,这题真是太好错了。我们所有做了这道题的人,都是想当然地就忽略了其他情况,而且是完全独立地想当然。
大佬们在考虑的问题是,这题按照现在的情况,怎么改能迅速抢救。我们其他人在考虑的问题是,这题不改还能不能救。
以前的总决赛发生过类似的事情。当时我不是裁判,但是我阅读了当时官方提供的赛后分析。他们说,比赛前夜,他们发现有一道题完全错误,根本没得救,而比赛题目已经打印完毕并且封装了。于是,他们当天晚上干的事情就是,打开封装,把订书机的钉子抠下来,取出错误题目,插入另一道正确题目,订书机订好,然后重新封装。据说这事干了将近一宿,到最后所有人都已经是拆钉子大师了。
这次问题似乎没有那一次那么严重。我们忽略的情况只在特定数据范围内有用,我们可以把数据范围缩小两倍,这样这种情况就完全没必要考虑了。而这样观感会非常好,因为根据当时数据范围给出的形式,如果缩小两倍,纸面上看起来就是个印刷错误,而不是题目错误,这样神不知鬼不觉地就能把这事掩盖过去。只需要现场发一个全场通知即可。
然后大佬们就在跟各种人打电话联系,说明天可能要干这个事情了,要提前做好准备。
然后我们剩下的人就在讨论,这题不改还能不能救。结果发现,还真能。我们确实漏了个情况,但是好像只漏了一个情况。也就是说,把那个情况加上,并不会影响这题解法的时间复杂度。于是我们好几个人就开始改程序。这个时候已经十点了。
然后过了二十分钟,第一个人改好了。然后又过了五分钟,我也改好了。然后接下来的一段时间,陆陆续续又有人写好了,其中有些人是从零开始重写的。我们对拍了一下,发现没问题。然后用那个暴力枚举程序生成的数据测了一下,发现也没问题。于是我们获得了正确的解法,这次危机算是顺利度过了。
然后就是,我们用新的标程重新跑了所有数据,并且根据新的情况加了很多数据。然后等一切都忙完,已经是十一点半了。好消息就是,不用发通知了,题目完全不用改,真正做到了神不知鬼不觉。坏消息就是,这题好像变难了很多。这个情况属实是不容易想到。如果比赛的时候错了,你很难知道是自己程序写错了,还是漏情况了。如有必要,你可能需要浪费键盘时间(也就是用电脑的时间,三个人只有一台电脑)来对拍。
时间转眼来到第二天。比赛正常进行。然后作为出题人,我发现这个题的难度似乎远超我一开始的想象。先不管那个最后的情况,正常情况下应该是很多队伍提交,然后错在那个额外的情况。而实际情况是,压根连提交都没有。最终三个小时之后才有正确提交,成为全场前三的难题。
然后我们密切关注了这个题的每一个提交。我们发现,当时所有第一次提交这道题的队伍都漏了这个情况,没有一次直接成功的。这个题果然还是太好错了。
换言之,如果我们昨天晚上没有发现这个情况,大概比赛还是能正常进行,压根就不会有人注意到,也没人会受到影响,因为没人在错之前能想到这个情况。直到很久很久之后,当数据都被公布了之后,大概才会有人前来鞭尸吧。
比赛的时候,有裁判闲来无事,把题目扔给了 AI,让它们做。最后的结果,我没记错的话,能直接完整写出程序然后正确的题目只有两道还是三道来着,而且还不是最简单的那几道。感觉这个时候 AI 的实力还是忽高忽低,有待稳定,且有待提高。此时此刻,谁又能想到仅仅一年之后 AI 就能碾压人类,直接 AK 了呢。
最后恭喜北京大学再次拿到冠军!罚时领先将近300,也是实力的体现了。
最可惜的还是清华大学,他们距离他们的第一个世界冠军,只差一个测试数据。外人只看积分榜,会觉得他们有两个题在错,很可惜。但是作为裁判,我们能看到,他们有一个题距离通过,就只差最后1个测试数据。我们再三观察也没发现那个测试数据有什么特别之处,然而他们最后也没能找到这个错误,实在是太可惜了!