ICPC 2023 西安站游记

2023.5.13 - 2023.5.14 ICPC 区域赛西安站参赛游记

前言

作为第一次参加这样一个具有广泛辨识性的国际大赛的 OIer ,内心还是相当激动的,故写下这篇游记来记录一下。

笔者初二,作为打星队与其他两个队员一起去参加了 ICPC 区域赛西安站的比赛。赛区选址在西北工业大学长安校区,离西安市区远的不是一星半点,坐车需要一个半小时。

这次队友是:

  • 李子晨(六年级)
  • 张嘉宁(初一)

没想到我是最大的。。

5.13 星期六

从机场坐飞机到西安,大概两个小时就到了。本身打算订火车的,但是下午还有 NOC 的比赛,怕来不及就改了机票。下午 1:00 左右下了飞机,出机场就已经快 2:00 了,准备打车去学校附近的酒店。

下午 3:00 办完入住之后在附近吃了点面,3:30 回酒店打 NOC 的复赛。

NOC 的复赛倒不是很难,1.5h 打满 AK 了,就当是 ICPC 的热身吧。

晚上跟队友去签了到,逛了逛西工大,校园还是挺好看的。

icpc-1

icpc-2

icpc-3

icpc-4

icpc-5

icpc-6

icpc-7

icpc-8

icpc-9

icpc-10

5.14 星期日

正式比赛。

早上 7:00 起的,吃了个肉夹馍 9:00 去参加的热身赛。

热身赛没咋好好打,主要就是熟悉了一下 CodeBlocks 该怎么用,顺带培训了一下队友 Ubuntu 的使用方法。

9:30 热身赛结束之后想去看开幕式发现楼下已经坐满了,遂在三楼机房附近围着看了一下。

icpc-11

10:00 正式开赛,我们题还没从袋子里拿出来一刷榜发现已经有人把签到题秒了,遂开了 G 题。

G 题一眼发现性质,答案永远是 1n1 \sim n 的数列,循环输出就行。于是乎我就打了一个 for 循环交上去过了,用时大概 5 min 。

后来发现别的题其他队也没有成功的提交,于是三个人开了三个题,我开 J 题,zjn 开了 I 题,lzc 开了 E 题。

J 题我研究一段时间之后发现没有太多思路,正好 lzc E 题也卡住了就去和他交流一下 J 题。

讨论的过程中我发现可以用类似倍增的方法进行求解,和 lzc 确定了大致思路之后敲了一下代码过掉了 J 题。这里有一个有戏剧性的小插曲就是这份代码由于精度问题甚至没有过第三个 1 0 的样例。。但是估计评测的时候有 SPJ ,我们又把精度调高了所以给过了。

这时候已经快 12:00 了,我们刚刚过 2 题。

在此期间 zjn 一直在搞 I 题,发现了一个操作 22 的规律:round(2x+1)\text{round}(\sqrt{2x} + 1) 有类似 [2,3,3,4,4,4][2, 3, 3, 4, 4, 4] 的性质,又鼓捣了一下敲了两个二分发现答案一直不对。最后 debug 了半天交了好几发终于过了 I 题。神奇的是这道题在我们过的时候只有 4 个队 A 了,环顾四周发现几乎没有人有 I 题的棕色气球。

此时差不多 12:50 ,过了 3 题,但是罚时由于之前 I 题交的太多很高。

zjn 搞 I 题的时候我和 lzc 在看当时很多队伍过掉了的 A 题。一开始以为是博弈题,一直没有研究明白,后来发现合法的序列是可以通过某些条件构造的,但是没有在限定复杂度内求解的思路。zjn 也来看了 A 题,仍然是没有头绪。最后快 14:00 的时候 lzc 搞了一个我高攀不起的逆元过掉了 A。

在这之前我们暂时放弃了 A ,我开始开 E 题,lzc 开 H 题。E 题一开始脑子一热以为是二维前缀和,写完代码才发现样例都过不去,之后也没有想出来很好的处理方式,摆了。lzc 的 H 题好像发现了一个重要的性质,20 多行的代码就过了 H 题,我和 zjn 直呼牛逼。

最后一个小时 zjn 在用 DP 搞 E 题,我和 lzc 开 D 题。最后 E 题没搞出来,D 题倒是有一个复杂度在边缘的 O(n2m)O(n^2m) 的解法,但是实现的时候只有 20 min ,有个奇怪的 bug 没有找出来,300 分钟的时候交了一发错解 WA 了,比赛结束。

奇怪的是最后竟然过了五题,排名88 ,拿了银牌。神奇的是最后因为失误给我们发了牌子,但是问了一下之后照完相就还给人家了。

icpc-12

icpc-13

icpc-14

总的来说,这场比赛全靠 lzc A 的 3 道题和 zjn 的 I 题