ICPC 区域赛 武汉站 游记
lizihan250 · · 生活·游记
:::warning[剧透警告]{open} 警告:本文包含剧透内容,涉及比赛包括:第 50 届 ICPC 国际大学生程序设计竞赛区域赛武汉站(热身赛),第 50 届 ICPC 国际大学生程序设计竞赛区域赛武汉站。 :::
赛前花絮
2025.10.29
快要比赛了。
高中生都在脱产加训,那我也一定要加训了吧。
不对啊我下午英语演讲的 PPT 还没做!不对啊周五的化学实验还要提前做掉!不对啊我周四根本没空做实验!
于是我这一天压根就没训练。
2025.10.31
穿上带着猫猫图样的衣服和高中的校服外套,准备出发。或许没能找到代表初中的元素吧,但或许还是这两件衣服更能代表我。
早饭是十月在学校吃的最后一顿饭了呢。
本来跟队友约的十点机房集合的,结果小包落数学教室了。于是激情折返跑。
在机房门口和队友打了两把 cr 友谊赛,第一把我精锐绿胖狂暴电车对上他水人,虽然他带了火箭但并不能同时防住精锐和电车,于是被我打进去了。第二局他换上了卫队四猪,也是被轻松 0-2 了。
上高铁前打了 Rotaeno 的六兆年と一夜物语,绿谱,蓝谱,橙谱都轻松理论了,紫谱打了个 15 小 AP,不想再推了。白谱打的一塌糊涂,连 EX 都打不到,于是发 QQ 动态的时候用了一个月前打的 100.5w 的成绩图。
高铁上试图加训,但我刚上高铁就开始睡觉,偏偏又挑了一场难度高的,于是等我睡醒了开始想题时已经没有简单题了,结果想破了脑袋也想不通。于是三人(或者说,两人一猫?)集体坐牢。最后加训以另外两个队友一个睡觉另一个看电竞比赛告终。
晚上到达武汉。订酒店时定了两个双人房,两个队友各进了一个房。那我怎么办?
_Vector_ 在群里表示要早点睡,第二天早起理板子。realman 则表示自己可能要晚点睡。于是我搬到 _Vector 房间去了。他开门的时候已经熄灯了。
第二天早起理板子了吗?显然至少我没有这么干。
热身赛 —— 2025.11.1
签到。
到场的时候还没开始签到。现场有主办方组织的各种小活动小游戏。然而我似乎并不是很感兴趣,而且人太多了,于是我选择了在外面待到开始签到。
签到时有个陌生同学通过我穿的校服认出了我是来自哪个高中的,虽然我根本不知道他是谁。
和高中同学聊了一会,发现昨晚睡觉的时候忘记给手机充电了,于是没多久与高中同学失联了。
回酒店理了一下网络流的板子。把带负圈的费用流写了,顺便把上下界网络流重写了一遍。
下午热身赛。A 题是 A+B problem(对,就是 P1001 那种),B 题是个构造,往年区域赛的题。C 是个交互。D 题是去年昆明的题目。
realman 把 C 秒了。_Vector 还记得 D 怎么写。我稍微想了一下回忆起了 B 的做法。那做完了?可我们电脑都还没打开呢!
终于等到了工作人员打开我们的电脑,real_man 把 A 光速写完(不然呢),然后我把 B 写了。realman 在写 C 的时候,我问清楚了 D 的做法。于是我把 D 写了。写的时候往右端点的参数传了个区间长度,调半天调不出来,最后还是 _Vector 发现的问题。
怎么会犯这样的问题呢?明天再这样怎么办?
然后 _Vector_ 测了一下评测机的机速,接着就提前离场了。
回酒店做了一下 CSP-J 2025 的题,结果在 C 题甚至罚了一发。晕晕。
real_man 找同学玩了。
ShwStone 到武汉了,并表示他的两个队友来不了,他这场要单挑。
晚上我跟 hwp 还有 ShwStone 出去吃饭。
我:“这个点三人一组的是不是都可以视为来打 ICPC 的?”
ShwStone:“那我们是什么情况呢?”
整体气氛非常欢乐。就是……
明天出场后还能这么欢乐吗?
吃完饭找了家打印店把板子打了。回到酒店,收好行李,定好闹钟,早早睡觉!
然后睡了一觉醒来发现是晚上十一点十四分。
正赛——2025.11.2
启程。
早上八点,随着起床铃声 Inverted World,拿上行李,前往赛场。
到了。
把板子和证件拿出来,放到比赛桌子上。无所事事的我目不转睛的盯着身后大屏幕上的倒计时。
旁边气球颜色展示中 G 题只有一个气球,其它题目都有两个,会不会暗示 G 是签到?
比赛开始。我拿到英文题面(众所周知,我读中文题面会读错),直接看 G,然后发现显然不是我的题。于是倒序开题,看到 M 是个构造,这题可做!
什么?行列式?子主矩阵?这都是什么东西?
再看 L,哇,又是矩形又是折线又是概率的,完全不可做啊!再看 K,又是一个神秘构造。再看 J,字符串,那更不是我的题了!
那我是来干什么的?
“这个 C 是个构造,或许你可以看一下……”real_man 说。
C 要求往一个网格中填入等量的
16 分钟时,real_man 把 E 切了。
看了看榜单,F 过的比较多,A 也有队伍过了。我决定先想 F。队友在看 A。
F 是个相当简单的题目。由于本质上递归树的形态是自定义的,因此,只要求出最小的点数,在加一取个
“你会了你就直接写,我们队签到题不需要讨论解法。”
于是我上机了。然而我并没有把怎么实现理得很清楚,稍加思索之后选择用堆维护,在 26 分钟过了。事后想想,其实直接用一个变量维护当前这一段的最小值就行了,复杂度少一个
队友跟我说了一下 A 题的题意。然而很显然的,数学并不是我擅长的方向,于是稍作思考后我又继续想 C 题。
我改变了我的思路:当
写完代码,测样例通过了。好像还没有队伍通过这题!难道说……
啊,WA 了。为什么呢?
哦,好像
趁着这时,_Vector_ 把 M 先快速码完过了。此时是 1 小时 6 分钟。
调试了很久的 Corner,叫上了 real_man 一起看代码,才发现问题根本不出在代码上,而是第偶数次镜像的时候,最小连接处并不在第四列而在第五列!于是我对
有点可惜,如果在第一遍写代码的时候看出这种情况的话就拿到一血了。
“应该有铜牌了”。通过这题之后,我说。
铜牌当然不是我们的目标,但是,我确实感觉有点底了。
榜上还有 A, H, K 三题。这 A 怎么还是做不出来呢?
于是我去看 H。结果很巧的是我刚看懂题目,还没想一会,real_man 已经大致会了,大致是在一棵 01-Trie 上同时找左子树最右边的值和右子树最左边的值。于是我接着看 K。
跟 _Vector_ 交流的时候,我摸索出了“使用
我决定上厕所。但好巧不巧刚好撞上同校的 shwstone 前脚走出赛场上厕所,按规则我只好在门口罚站等他进赛场才能上厕所。于是在门口理了一下 K 题思路,没有取得太多的进展。
回到座位,我意识到一个数具体在哪个数组根本不重要,只要知道它在哪个二元组里就好了,这样可以把交换压到
此时是 2 小时 26 分钟,real_man 把 H 过了。我跟他同步了一下 K 的进度,然后正说着,突然意识到——如果以 A 为参考系换 B 换不了,那就倒过来以 B 为参考系换 A 啊!理了一下感觉很对,于是上机写了。
上机写的时候发现前面“配平”根本不用做,那操作次数是严格
3h 时,我测完样例,确认没有问题,于是点下了提交,转过身去看大屏幕——
变绿了!
“拿下!”我拍了拍桌子——然后去上厕所。
暂时排在第 16 名,可能已经金牌了?
回座位,感觉 A 还是不可做啊。为什么有队伍那么早就过了呢?G 也完全不是我能处理的题目。不如看看可能更熟悉的 B 题,图论题。real_man 告诉了我题意,我又读了一遍题意,结果发现对不上。我仔细的一个词一个词对了过去,然后问了一句:
“它没有说最大吧……只要每个端点都选出一个点就对了……吧?”
结果还真是如此。于是 _Vector 很快想到了这是个类似 2-SAT 的问题,并且可以使用线段树优化建图的方式优化(我前两天梦到的知识点怎么会以这种形式出现在赛场上)。于是分工就很明确了:_Vector 把建图,求解和输出方案的部分写了,而 real_man 负责处理连边的一些前置工作。而我……喵喵咕噜咕噜?
于是接下来的一个半小时我就跟不存在一样——先是通读剩余题目,尝试将网络流这把钥匙代入,看看能不能插进这些锁里面——显然不太可能。于是又去看队友的代码,但除了翻译爆出的编译错误的意思以外没有什么作用。
比赛一分一秒的走到了尾声。
“就剩半分钟了,要不交一发吧。”我说。
但是样例都过不了的代码提交了有什么意义呢?最终我们也没有这么做。
比赛结束了。线段树建图的部分已经确认无误了,可惜 2-SAT 的部分调都来不及调。成绩定格在 6 题 568 罚时。
数了一下封榜后过题的队伍,应该不会把我们挤下去吧?
另外两只队伍也都是六题。能不能给三块金牌?
讲题了。
正如 M 题的名字一样,这场前期简直是“构造王国”——总共 6 道题,5 道构造。这场是谁组的题啊??
B 题思路完全正确!虽然还差一点没有调试完,但是队友还是太厉害了!
A 题是个类欧——与我而言只存在于传说中的算法。G 题更不讲道理,数学分析都来了。这哪里是我一个不会数学的选手该做的题啊。
D 可以用流做!但连讲题人都没有详细的讲述如何证明流做法的正确性。看来做不出来也正常了。
I 题是个神秘题。可能回头补一补吧。
来到滚榜环节。榜太长了!我要饿坏了!要不先去找点吃的?
食堂居然在 1.5km 之外,完全不可能吃完饭再赶回来!这一定是阳谋!于是我们刚走出会场又走了回来。
滚到 5 题前排了……封榜后过题的队伍好多……诶 ShwStone 的 912 罚时怎么感觉不够(金)啊?
坏了真不够!
银牌怎么还没结束?怎么麒麟王也是银牌?
银牌区还没结束吗……
诶屏幕上显示的是“Gold Medal Winner”了!我们还活着!!
金牌线停在了 6 题 831 罚时。
或许有点可惜,ShwStone 但凡有一个队友就金了,麒麟王但凡少 3 发罚时也就金了。不过至少,这赛季我们学校已经拿到金牌了。
我们拿到了第 32 名,校排 20,凭借前期优势在 6 题队中排在第二。或许把 B 题调出来校排还会再高一些,但这都已经是过去式了。
我实在太饿了,于是在获得同意之后把队友没吃完的早饭午饭给吃掉了。后来到高铁上尽管知道盒饭不可能好吃,还是买了一份,吃得一干二净。然后跟 _Vector_ 分享了一些他出的题目,很有意思。分享了一些我自己出的题目,不知道为什么他总是觉得我评低了。
回到学校,走进寝室。寝室一如既往的没几个人。我仿佛刚从梦中醒来,似乎什么都没发生过,就像我刚刚从一个普普通通的晚自习回来一样。
但这并不是终点。
这只是我们的“六兆年零一夜的 ACM”中,开端的一夜。