2024 ICPC 区域赛成都站 VP 记录

周末一时兴起跟 xhr 和 khz 打了一场 Ucup,随便打打还打进了铜牌区,赢!

L. Recover Statistics

开始前没准备充分,比赛开始的时候 khz 都还没登上我们的账号,于是 xhr 被迫去给 khz 整账号,基本上前几分钟都只有我一个人在看题。我是正开的,凭心情一直浏览到了 G 题,感觉是个签到,就开始想 G。

等到 xhr 他们整好了账号,一看榜已经有人过 L 了,于是就愉快地决定开始跟榜,我们的策略是每道题都要有两个人一起做,所以我就放了 G,跟 xhr 一起看 L。khz 似乎在看 A。

L 很简单,按顺序输出 5050aa4545bb44cc11c+1c+1 即可。

赛时刚开始不够清醒,想得比这个复杂点。xhr 基本上同一时间也想出来了,所以就交给 xhr 写啦。不过我还是全程盯着他写完了,事实证明这是非常正确的,在两个人一起看的前提下都贡献了 2 发罚时才过/cf。顺便吐槽看 xhr 打代码真的是顶级折磨,怎么会有人到现在还不会盲打啊啊啊,慢死了!

A. Arrow a Row

过完 L 之后,听 khz 的开 A,我边看题边听他讲题意。理解完题目之后感觉非常简单,于是我极其自信地直接上机开打,结果写完才发现样例 3 和 4 挂了,仔细一想,假力!想了想换了个方法推倒重构,写一半又发现假了。khz 可能看我很自信,在我上机之后就跑去跟 xhr 讨论 G 了,我一个人在机位上空转了一阵子,过了好一会儿才想到正确的构造方法,于是又推倒重来一遍,过掉了样例,但交上去第一发 WA 了。

这时候 xhr 他们对 G 有想法了,我就下了机位开始手膜几个样例,但是 xhr 他们的 G 第一发也 WA 了,于是我又上了机位,这次很快就调出来了。

我的做法是先判掉开头一个或结尾三个存在 - 的情况,然后从后往前不断放入长度为 55 的 arrow string,直到遇到第一个 -,然后再从前往后根据 - 的位置放 arrow string。感觉可能想复杂了?但我暂时还没有更简单的思路。

G. Expanding Array

xhr 那边陷入了停滞,所以我又跑去看 G ,khz 好像去看 I 了,因为是他喜欢的数据结构(

但我 G 一开始看错了题,没看到“相邻”这个条件,还很快想出来了一个假的做法,写出来发现错了,此时 xhr 只是在旁边看着,也没有发现什么问题。再跟他讨论才发现我理解错了。于是我又返回去看了下他们之前 WA 的那一发,仔细想了想他们的想法,听起来怪怪的,但手膜的小数据都没问题,直到我想了半天构造出来了一个反例。但是他们的做法其实对我的提示性蛮大的,我很快发现两个数最多只有 88 种情况,感性证明了下构造方案就开写了,写完稍微改改就喜提 Accepted

J. Grand Prix of Ballance

我写完 G 就去开 B 了。不过 xhr 看完 J 发现就是简单模拟题,让我看一眼,我看完感觉也是,而且也没什么细节,就等 xhr 自己慢慢写没管了。就只有他第一发 WA 了之后给他静态查错出了一个小错误。改完就过了。

B. Athlete Welcome Ceremony

剩下的题里面感觉可做的大概只有 B 和 I 了,一道 DP 一道 DS,都不是 xhr 的菜,所以后半场 xhr 似乎成了我们队的吉祥物(笑

虽然我很不想做 dp,但是由于 khz 可能更擅长 ds,所以我还是选择了开 B。之后很长一段时间里我都只会 O(n4q)O(n^4q) 的做法,我还跟 khz 互相比了下我们各自的题谁想的复杂度更高,不过我似乎更胜一筹。聊天的时候 khz 在没想过 B 的情况下开玩笑说要前缀和,我下意识地说不可能,因为一点都不像,此处埋下伏笔。

此处快速收回伏笔,因为再想了半天我还真发现只用 dp 预处理一下,再维护下三维前缀和就可以了,复杂度降为 O(n4+q)O(n^4+q),不过我当时以为是 O(n3+q)O(n^3+q),就直接开写了。写一半才发现搞忘了一维,稍微想了下发现可以通过维护 ?? 的总数消掉一维,于是继续一鼓作气写完了 dp 的部分。

然后发现不会三维前缀和,我们一致同意假装打了纸质资料,上 OI-Wiki 现学。写完后再花了点时间调了下初始化的那块,再陆续改了好几处不小心没从 00 开始做的前缀和,就过掉了样例,交上去一发过,没想到这竟然是今天唯一一道没吃罚时的题。

I. Good Partitions(赛时没过)

过掉 B 我也去看 I。但是并没有任何想法。khz 对着样例乱猜了一个结论,然后写了个单点修改,维护全局 gcd 的做法,交上去 WA 了,然后我们一起陷入了较长时间的无效思考。

直到最后半个小时左右,我去上了个厕所出来,突然发现也许可以处理出每个元素所处的极大最长不降子串的长度,由于每次询问是单点修改,只会造成常数级的极大最长不降子串的变化,因此可以转化为区间修改,查询全局 gcd。khz 听了之后感觉也很对,就开始上机狂搓线段树,此处 xhr 至始至终都没听懂我们在说什么。由于我还没吃午饭,所以我就在边上边泡面边帮 khz 进行分类讨论和处理细节,可惜并没有在赛时写完,赛后一分多钟才写完,khz 样例都没测就丢上去测,毫无悬念地 RE 了,算是没有辜负 RE 仙人的称号(

后话

最后以五题收尾,以我现在仅存不多的技能来看,除了 I 题,也许还有两道左右的可做题,xhr 和 khz 的技能可能比我点得更多,但是的确思维和经验上都欠缺得蛮多。再加上我本来也很菜,几个签到都卡了好久,让我当大核实在是力不从心,只能说在一个实力相差较大的队伍里,想打出配合真的很难,更多的是一个人的舞台。反映到这场比赛,最难绷的就是几乎所有题都需要我花时间想。虽然不可否认,几个签到完全交给队友也可以在赛时调出来,但很可惜 ICPC 赛制还有罚时机制。

不过这次也有一些很不错的亮点,我和 khz 在最后半个小时内打出了相当舒服的配合,我们都能在对方思维停滞的时候及时给出提示,从而极大的拉高了思考效率。两位在 G 题和 I 题上的一些想法也为我们最终解决题目提供了至关重要的启发。

但是我真的想再体验一下被带飞的感觉啊,两位再努力下