2025.09.20
本赛季的网络赛告一段落。ICPC1 rk84、ICPC2 rk55、CCPC rk187,也算是一个不错的开端,拿到了我们能争取到的所有区域赛基础名额。
又到了激情的选站环节。经过一番激烈的讨论后,本赛季我们选择 ICPC 武汉站、ICPC 南京站、CCPC 济南站、CCPC 重庆站。
选择武汉站的一个原因是武汉站容量大牌子多,取得成绩的概率更大。另一个原因 ... 就是因为武汉大学最近实在太出名了(:
(后面才听说许多强校的主力队撞车武汉,不过谁还不是个主力队了)
Day -1
欧耶,泊至武汉。
傍晚成功抵达酒店,摇骰子成功抽到单人间(QQ 骰子这一块我还真是鲜有对手),随后苟在酒店里看 S15 八强赛 AL vs T1,LPL 还是做不到吗 ...
晚上随便读了一点英文题面就睡了。
Day 0
早上九点半来到武汉大学计算机院楼报道(别人家的院楼.jpg)。
是我最爱的非凸科技活动,直接参加!投壶 10 中 0、丢沙包 3 次只中了中间的 20 分。我是否会怀念当年高三在峡谷之巅意气风发的自己 ...
非凸科技的小姐姐拉我去接受她们的采访。成功赢得一个大 fufu,不赖。
" 大家好!我是来自福州大学的同学。来参加 ICPC 竞赛非常激动,希望可以好好发挥不留遗憾。非凸科技所研究的量化领域(fufu 领域)我非常感兴趣,希望以后可以加入非凸 "
随后就在武大校园里闲逛。武大的共享电动车只能允许本校师生骑行,太伤心了。武大的樱花也没开,更伤心了。
逛了半天,到达武大三食堂。这一层的所有窗口居然都可以使用餐券,真是太良心了(点名批评西北工只开放六个窗口!)。于是美美的把这 25 元餐券全花完了。
下午两点半热身赛,发现 ABC 都做过,D 是去年昆明站 D 题套娃。于是就示意队友们去看 D。AB 很快就切掉了,C 题去年热身赛的时候三十分钟左右就切掉了,今年却死活过不去。我和队长两个神人总共 try 了 7 发,九十分钟才过。
热身赛期间隔壁南理工的选手突然嚼起了槟榔,并盛赞槟榔提神醒脑。有那么一瞬间我以为自己在打 ICPC 长沙站。
热身赛结束后,在场馆外偶遇 chenjb 教授,成功要到了与陈教授的合照,以及一个 Ucup 紫色吧唧。very nice!!!
晚上和 CLYZ 的 OIer 朋友们相聚于火锅鸡,携二三好友把酒言欢(实际上喝的是一点点)。随后又去东湖之眼乘坐摩天轮,欣赏武汉的夜景。
今天玩的很开心!
Day 1
赛前竟然意外地冷静,心里只有一个信念:"我要用我的金手指全力以赴了!"
九点半开场。我按照习惯倒着开题,看完了 J, K, L, M。七分钟的时候全场一血 F 就出了,于是就跑去看 F。
很快我们队 E, F 都会了。队长先写了一下 E 题,写完以后发现网络炸了,交不上去。等我 F 写完的时候发现仍然交不上去。直到 0:40 网络恢复正常,我们连过两题。
在交换题面的过程中,感觉 K 题是队友喜欢做的类型,就把 K 题丢给队友了。果不其然队友的方向非常正确,一下就找出了下界并给出了构造方案。1:13 稳稳拿下,全场第七杀。
与此同时,我去看了 A, B,队长去看了 M。一开始 M 有些基本的观察,随着 M 的通过数水涨船高,并且对面的队伍很大声地说他们猜过了。于是就立马定位这题是一个简单猜猜题。队长把之前列错的式子修正以后,机智地猜了一发也顺利通过(1:22)。
随后 H 题也被队长预定了。看榜发现 A, B, C 是接下来的三题。于是换我去做 B,队友做 A。B 题想了半天,除了排除掉 dp 以外没啥进展,但是直觉告诉我建图的部分需要线段树优化建图。马后炮地说,只要先考虑一条链的情况,就可以排除绝大部分做法。还是经验不足了 ...
此时 C 题的通过数逐渐反超 A, B。队友开场看了 C 题,觉得 C 题很有感觉,于是认领了 C 题继续做。
随着队长通过 H 题(2:13),由于我看了很久的 B 题仍然没有进展,于是就让队长去看了 B 题(我认为这也是他擅长的图论题),而我去看了 A 题(我喜欢的数学题)。
A 题想了半天的根号分治。从感觉上来说当 \(k < \sqrt{m}\) 时段数很少,当 \(k \geq \sqrt{m}\) 时同余类很少。但先不谈整除扰动的细节,光是把两个算法结合起来我觉得都没法做。真是一筹莫展 ...
不知什么时候队长提了一句 B 题是 2-sat。我去真是醍醐灌顶了,勾八的还真是 2-sat(甩锅时刻:本人上一次写 2-sat 是三年前了呜呜呜,队内负责图论的大手子也不是我)。这下子一开始想的线段树优化建图就完全对上了!队长想了一下也觉得很有道理。
与此同时队友 C 题聪明地构造完毕了,帮忙 check 了一下觉得非常有道理。写完之后意外地 WA 了。
三小时出头的时候,帮忙写了一下 B 题求新 dfs 序对应区间的部分(当时觉得 DSU on tree 能做就直接写了,赛后才得知可以直接二分,但还好 DSU on tree 一遍写完也没有任何 bug),大概花了二十几分钟。然后换队长接力 B 题。
下机之后得知队友 C 题看了两遍代码都没有检查出 bug,先是帮忙证了一下 \(2 \times (\geq 9)\) 的情况必定无解,然后开始帮忙看代码(其实此时不应该看代码的,队友自己看了两遍没看出来,很大概率是漏情况了)。突然队友提了一嘴,他只判了 \(4 \times 9\) 的情况,没有判 \(4 \times (\geq 12)\) 的情况。还真是!
队友很快又针对 \(4 \times m\) 的情况进行了聪明的构造。我也 check 了一下所有情况,确定是只漏了 \(4 \times m\) 的情况。再三确定下,更换队友上机调试 C 题。于 4:00 终于通过。
和队长商量了一下,决定剩下的时间冲击 B 题。队友上机调试 C 题的过程中,队长带着我过了一遍 B 题已经写完的代码,并且和我讲了一遍 2-sat 的原理。不过我还是对 2-sat 如何求方案一知半解。C 题通过之后,队长接着写 B 题,我对着队长的模板 check 缩点部分。
不知过了多久写完,剩下的时间也不多了。一测样例居然只输出了 Yes,后面的点集没了???
我感到非常的诡异,示意队长先玩一个 n = 2, m = 1 的小数据,果然小数据也没有点集。此时我们将所有的边都输出出来了,一对发现和自己想要的图一模一样。在时间的攻势下队长有点慌不择路了,后面的时间还在怀疑 2-sat 原理是否理解错了。
很可惜很可惜,最后并没有通过 B 题 ...
赛后简单看了一下解开前的排行榜,大概得知我们 99% 金了。由于我们的罚时非常优势,后排的队伍很难通过罚时超越我们。
随后静静地等待滚榜。等到银牌全部播报完毕,滚榜指示线停滞的那一刹那,一切终于尘埃落定。全场欢呼惡 · 即 · 斬!!!
终于如愿以偿地夺得了金牌🥇,激动的心情难以掩饰。
曾经不知多少次幻想着自己夺得金牌的场景,文案准备了一条又一条。不过真的到了这一刻,却只感觉一切都是水到渠成。赛前就有强烈的预感,觉得金牌已经势在必得了。赛中也已经感受到金牌十拿九稳了。为了算法竞赛付出了这么多,我们值得这块金牌。
回顾本场比赛,算是一场队友火力全开,我火力半开的比赛。
在做题方面,黑冰茶左手构造多、右手多构造的风格并不太适合我,但还好队友发挥神勇抢先切掉了。我大部分的时间都在硬刚 A, B, J。然而 A 有类欧的算法门槛,J 难度过高。B 题又是我多年未见的 2-sat 问题。像是一脚踢在了钢板上。
在配合方面,除了 E 题外,每个题的思路我都有简单 check 一遍。不过于我们队而言的奖励题 B 却没有帮忙 debug 出来(实际上晚上发现我们 B 题只有求拓扑序过程中的一个字符 x 打成了 i),一方面是我在 debug 的时候脑袋没有转起来,没有做到逐字逐句的精细检查;另一方面是我作为更冷静的旁观者,应该更有主见一点,给上机的队友有用的指导。
不过本场比赛的发挥也算是一颗定心丸,这证明了我们队在金牌区就是有一席之地,并且富有竞争力。
武大是个好地方,惡 · 即 · 斬的梦想从这里启航!