尾声潮落——2025ICPC上海站游记

· · 生活·游记

尾声潮落——2025ICPC上海站游记

Day -6

在沈阳拿下了我们队成立一年以来第一块 XCPC 奖牌。我们队欢欣雀跃,决定在上海站结束之后聚餐一顿。

Day -3

上海站将是我们队最后一次正式区域赛。因此,周三的训练成为了我们队已知的最后一次训练,选的场是 GDCPC2024 ,和上海站同样为清华出题。很快每人各自瞪出一题,我找到规律试图开下一题,结果居然炸 long long 了调了一个小时才过。最后一小时队友学完 min_25 筛又拿下一题。

Day -2

我以为早八的概率论要交作业,遂通宵写完,结果被告知不用交作业。

晚上是贴贴局,很开心。

Day -1

物理期中考试,爆炸。

和两个队友都在同一个考场考试,考完之后我们就直奔地铁站前往上海。车次是京沪大标杆 G27 ,速度一度高达 345km/h 。到上海站发现有“东南出口”“秣陵路”“江宁街道”“南京路”,感叹你车居然还在追。到酒店已经是午夜了,啃了顿夜宵便入眠。

Day 0

参观游览 I

去年上海站的时候住的就是这家酒店,我对此酒店的早餐十分赞赏,又吃了三大盘。

前往上海大学签到。相较沈阳站,上海有发队牌和拍照环节,主办方这一点还是做的不错的。参加非凸的投沙包活动,居然投了 30 分,喜提迪拉熊一只 awmc

中午去徐家汇找朋友贴贴,吃完饭回来就是热身赛了。

热身赛

开幕式讲话非常长,导致热身赛时间延迟了15分钟开始。

我首先观察到 A 题改变一个数可以对一行和一列造成影响,那么答案应当是 max(有奇数个1的行数,有奇数个1的列数) ,果然通过。B题是我们 VP 过的 2024CCPC 重庆原题,也很迅速获得了通过。

结果 C 题卡上了,我们一开始陷入了正序/逆序直接排的死胡同里,发现这样质数数量不够。直到队长提出找一个 n/2 左右的质数再逆序输出可以获得一串答案时,我在此基础上给出了左右摆动的方案,这个方案显然很优,于是我们也很快通过了此题。

D 题最开始想的“全部随机排直到某部分归位,再对其他部分分治”的思路也是错的,次数太多了。然后发现可以直接像选择排序一样暴力地把 1 到 n 每个数往前提,每个数到达其正确位置的操作次数是期望 log 的,于是过了。

仅仅不到一小时我们就取得了热身赛的 AK。四个气球浮在空中,氛围一片和谐。

参观游览 II

朋友带我去中潭路吃卤肉饭,果然非常好吃。又去了陆家嘴滨江坐着欣赏了一会江景,进行了一个小公交运转后回到了酒店。很开心。

回到酒店和队友闲聊,提到如果拿铜牌第二天就吃一顿晚饭,银牌吃两顿晚饭,金牌吃三顿晚饭,捧杯则去和平饭店享受奢侈大餐。

Day 1

正式赛

起的有点早,没有睡够。好在酒店早饭还是很好吃。

正式赛开始!开场几分钟 D H G 便接连通过,其他两位队友便思考 D,我找 H 的规律。D 的难度比之前的签到题要难得多,需要 O(3^n) 的算法才能过。虽然类似 DP 的方式进行递推合并的 trick 不是很难想,但是代码的实现还是有点难度,直到 71 分钟才取得了 D 的通过。

在 D 通过之前我边闭目养神边在脑中演算 H,提出了一个猜想:出现奇数次的数不能超过两个。到 D 通过的时候,我已经把这题的结论想出来了,只要把成对的数直接异或起来,并判断结果是否等于出现奇数次的两个数之一(或结果和出现奇数次的数目均为 0 )即是先手方必胜的充要条件,结果我猜对了,这题代码倒是好写,85 分钟就通过了。

但接下来的 G 题却成了我们队的大阻碍。先是队友提出了一个观察:组数不会超过 2,我们稍加思索便确认这是正确的。接下来的合并需要使用线性基,队友想出来的式子也成功过了样例,但提交却 WA 得很快。我发现帮不上忙,因此我去看 J 和 A 。在此期间队长写了一个对拍程序,成功发现了反例,于是弃用 G.cpp 重新开始写 G2.cpp 。我在 J 上没有建树,看 A 倒是发现了一些可能有用的性质,认为这道题和分治有关系。

G2.cpp 也 WA 了。时间进入封榜,我们陷入了沉默。

队友对着对拍程序构造出来的样例继续思考,重新想到了一种合并方案。283 分钟,submit G.cpp -y,CORRECT。

对于A,我们先二分深度再通过 LCA 找一半结点排除的方法已经和正解很接近,只是时间将要结束,我们没能完成心愿。

比赛结束了,天色已经渐暗。铜牌的结果虽不出彩,但却足以令人安心。我们谈笑着走出了上海大学的校门。

尾声

那么,关于这支队伍的故事,就暂告一段落了。

故事的最后,他们在面馆吃了一顿晚饭,改签了高铁回到了南京,队长买了三杯茶颜悦色犒劳大家。回到学校,他们骑上单车,在并行一段路之后,其中一人转弯,奔赴不同的方向。

我们短暂交错 尾声潮落 致敬这场遇见