2025 ICPC 南京区域赛 记录

发布于 13 天前  326 次阅读


2025.11.07 Day0

我们周五中午从上海站出发,从上海站高铁到南京南。第一次在上海站乘车,比虹桥近了许多,高铁站挤在市区里的感觉挺有趣。

乘坐 G16,少数从上海站发车的京沪小标杆车,经停苏州北一次后一个小时十一分就就达了南京南。

从南京南下高铁来到到达层后我突然发现我还记得路。去年我的第一场区域赛就是以嗨鸠科技打星队的身份参加的南京区域赛,同样是南京航空航天大学。到达通往地铁的通道时我就全都想起来了,有一种很奇妙的感觉,似乎闭着眼睛也知道地铁往哪里走,我还和 pengpeng 提到我还记得去年我们在这个位置的时候在讨论什么内容。坐一站地铁到达学校后,到达地铁站入口时,我发现我不经思考就知道出口要往哪里走,还指着安检处说去年我们在这里抛弃了我们的袋鼠一血气球(因为拿不进地铁站)。后来到校园里,虽然走了一个之前没有走过的门,可是没有看地图的情况下,走到干道前就想起来,去年是从右手走到底的门进来的,体育馆在前面左转走到底再右转再左转穿过地道后就到了。走到路口一看,还真是。一路上我还指着路口指着地道指着食堂,和 pengpeng 讲去年我们在这里吃饭了,讲我们去年经过这里的时候在聊什么。

他们都很惊讶,我这种从来记不起来昨天比赛题目的人,怎么一年前的琐事还记得那么清楚。感觉确实很有趣。可能我的大脑缓存小并不代表我忘记了这些事情吧,像找路之类的事情,当我站在现场时就可以由周围的场景触发我的回忆,至于赛题,我这十年来做过太多题目了,大概太千篇一律没有特点而难以回忆起吧。

住的酒店比较老旧,感觉一般。晚上打车打算去吃 U5 喜欢吃的牛 New 寿喜烧(他们在上海就很喜欢吃,我们也吃过几次),结果到达那边后刚好被第一批排出一位,等第二批大概要两个小时。结果等了一个多小时后大家按耐不住,去隔壁商场找了一家火锅。结果刚到那家店,这边就叫号了哈哈哈。不过那家火锅也还可以,价格相比于上海也是友善了不少。

两周前也是和 U5 一起打比赛,这次就继续了娱乐活动。晚上打了打德扑,我并不是很会玩,不过慢慢掌握了一些博弈技巧,感觉确实有一定学问。后来又玩了一把 richup,开局抢下美国后好好地让大家心惊胆战了一波,最后和 OIer_kzc 英美斗争,结果 OIer_kzc 在幸运没踩到美国格的同时踩到了交房税格暴毙而亡。感觉后面纯运气游戏,并不是十分好玩。

2025.11.08 Day1

早上早起吃了顿酒店早餐。虽然酒店一般,不过个人觉得早餐还算可以。虽然看起来比较朴素,并没有装饰的比较华丽,但是菜品吃起来还算可以。

前往学校就是上文说的,在出发时粗略看了一眼地图以外,就近乎不经思考地自动到达了体育馆,还环视了一圈和他们分享了去年在这边遇到的几位朋友和一些事情。签到环节还是有袋鼠皮套人,不过感觉和去年一样有些不协调的诡异。

发了厚外套,今年的配色相比去年个人觉得好看了一些。正面去年是线性筛,今年是快速幂。不过大家都一眼注意到了在关键字间加空格但是在运算符间不加空格的诡异,感觉仔细看着并不是很爽。另外都用的是 int,虽然也没啥事情,但是似乎不太常规。群里他们说因为写代码的人喜欢 #define int long long,原来是和 pengpeng 一样的邪教人。

进场地后还是有一股浓郁的熟悉感,对场馆的构造有充分的了解。(下面这张照片在去年用一模一样的角度拍摄过。)

另外在中午经过时还看到大屏幕上展示了最近几届南京站的全场一血。看到了去年我们队伍全场一血显示在屏幕上,想到竟然已经过去了一年,还是有一些恍惚之感的。

热身赛前需要有祖传的玩袋鼠环节:

热身赛不出意外的是袋鼠题集锦,我们较快地完成四个较为简单的题目后,由 pengpeng 完成最后一个困难的题目。pengpeng 写了很久,不过在一个半小时也是通过了这道题目,拿到了热身赛的亚军。过程也没有参考历史代码,感觉还是很厉害的。

在南京站还遇到了我的两位初高中同学,还连带着我的两位队友一起被热情请客吃了一顿高档菜。和他们聊起来才知道原来诸暨还有那么多 ACM 高手的,没有想到很多早有听闻的大师原来是老乡,感觉挺有趣的。

2025.11.09 Day2

早上起来吃了早餐,慢悠悠的来到了赛场。路上在便利店购买了一些面包,不过没有找到夹子,原本打算用夹子夹一下拆开的中文题面防止弄丢,不过也算了。

直接来到开场,开始时我并没有很快地定位到签到题。我还是和平时一样在开始时观察 EFGH,并且我注意了 F。但是观察了一下之后并没有发现显然的做法。此时 pengpeng 告诉我 C 的做法让我快点实现,不过在完成实现后还是保守了一手,进行了一下编译运行检查,半分钟落后于一血。去年拿了很多一血,可能现在已经更加注重于保守一些以控制罚时,没有那么在意一血了。与 00:02 通过 C。

完成 C 后 OIer_kzc 告诉我们他会了 M,他问我们要不要现在上来开始写 NTT,说这句话的时候给他自己都绷不住了,我们三个人一起笑起来。这样的事情在平时训练的时候发生过好几次,不过正式赛干这种事情还是挺有趣的,我们让他上机开始实现。随后 pengpeng 看了 F 并且得到了做法,于是将机时优先给到他,于 00:29 通过了 F。

在这期间我阅读了 A,也就是这一场的袋鼠题。阅读完成后我觉得似乎没有那么困难,只需要完成一些讨论。我最开始并没有注意到一些情况,我认为在横方向先行移动,找到洞口左右一侧长度耗尽后,通过上下分别移动一次就可以判断洞口属于左侧耗尽还是右侧耗尽的情况,并在之后将剩余袋鼠继续移动至仅剩一列,再竖直方向移动定位到缺少袋鼠的位置,以此确定洞口位置。此时距离比赛开始半个小时,但是由于清北强队与强力打星队伍的存在,已经有六个题目有队伍通过,非常夸张。有部分队伍已经开始交 A,于是我上机实现 A,并且希望拿到 A 题的一血。

一段时间后我完成了 A 题,但是对样例情况进行手动交互时,样例恰好是一个 n = 3 的情况,我意识到对于 x = 2x = n - 1 的情况,我的做法存在问题,无法识别。于是我下机,并且我意识到我影响到了我们前期的开题,使我们的排名一度落至正式队伍二十名左右。不过 OIer_kzc 在我下机后上机完成了 K 题并于 01:03 一次通过。此时我们通过的三个题目按照顺序依次为 KFC,感觉十分有趣。完成 K 题后 OIer_kzc 继续完成了 M 题的实现,于 01:22 以正式队伍一血的时间一次通过了这道金牌题。

我还在继续构思我的 A,我注意到还有不少队伍在尝试提交,但是都没有通过。我意识到后面的讨论存在不小的难度。我询问队友我是否需要换题,并且思考了 E 题,不过思考了一段时间并没有想到做法。鉴于我们的机时始终没有空闲,我们决定让我继续思考 A,完成进一步的讨论。

在 M 题完成之前 pengpeng 就上机实现了 I,但是 pengpeng 阅读思考样例后发现自己理解错误了。在 M 题完成后,pengpeng 重新修缮了 I,并且于 01:35 一发通过 I,来到正式第六名。虽然前期我们犯了一些错误,不过总体不错的速度与零罚时依旧给我们带来了优势。

完成 I 后 OIer_kzc 和我讲了 G 的一个大胆的猜想,我们都感到奇怪,并且没有理解详细证明,不过上机实现后在 01:59 完成了 G,没有带来罚时。此时距离比赛开始两个小时,已有十个题目有人通过。我和 OIer_kzc 分享了 B 题,他得出一些观察后,思考并实现,于 02:26 通过。

期间我仍在讨论,并实现 A。我更换了一种思路,我尝试在横方向移动至一侧耗尽后立即进行纵向的移动,并且在他们不上机时一直尝试实现,此时还没有人通过 A。但是我在实现时发现我纸上讨论时分类的七八种情况中,我估计错了其中一个变量的值域上界,其中四种情况在特殊数据下无法区分,这让我停止了这一想法的继续实现。

我思考了 H,并且与 pengpeng 分享了大致做法,由他来实现这个字符串题。他上机实现,并在一段时间的调试后于 03:05 通过 H,至此我们所有的题目均为一次通过没有罚时。中期大部分时间都保持在季军位置,偶尔位于殿军。

在 pengpeng 实现过程中我阅读了 J 并且想到了做法,但并不十分理解正确性,于是与 OIer_kzc 讲述了我的想法。他认同我的做法,并且希望由 pengpeng 完成这个图论题。但是由于 pengpeng 一直在调试 H,于是 OIer_kzc 上机完成 J。在 pengpeng 通过 H 后一段时间,于 03:11 提交了 J,但是得到了 WA。我们并不理解为什么出现了错误,于是与 pengpeng 交流了这个题并且阅读代码,但是经过三个人的合理思考和讨论,并没有发现任何问题。于是我们让 OIer_kzc 继续开题,由我们来对他的 J 进行思考和测试。我和 pengpeng 进行了很长时间的仔细阅读与思考,包括上机测试了大量数据。但是我并没有找到任何错误。pengpeng 实际上找到了代码的错误,但是由于自己的误解,认为这个错误的返回结果是正确的。此时已接近封榜时间,时间较为紧张。我继续开始考虑我的 A,并且利用所有机时尝试完成。

封榜时由于我们少一个题目,来到了校排第四,八题罚时第一并且与后面拉开了罚时差距。此时 OIer_kzc 会了 E 的做法,把还在继续实现 A 的我赶了下来,并且快速实现。在 04:23 提交,但是得到了 WA 的结果。他立刻完成了暴力的实现并进行对拍,很快找到了错误,于 04:39 提交得到了 AC。

我继续实现 A,我回归了开始时的做法,并对几种情况可能难以区分的情况进行了特判,增加了若干次操作,尝试对他们进行区分。我几乎为每一种特判情况制定了一个独立的后续交互算法,但是时间紧迫,我也更加紧张,难以在最终的时间完成所有情况的编写。

不过幸运的是,在 OIer_kzc 与 pengpeng 的讨论中,他们于倒数五分钟左右时于讨论中发现双方观点不一致的点,并且从中发现了代码的错误之处。他们紧急上机实现,在短暂的思考后照出了一种更改代码极少的修改方法,在一分钟内修正并且提交,于 04:56 极限通过了 J。

最终我们通过了十个题目。并且与几个有希望竞争季军的队伍交流后发现他们中十题的队伍罚时均无法超过我们。最终得到了季军的成绩,并且与殿军拉开了两百六十分钟的罚时。

在这一场中我只实现了签到题,并没有做出足够的贡献。不过我的队友手感火热,完全靠着两个人加上我占据的大量机时拿到了季军,感谢我的队友们。也说明了我们还有提升的空间,我也要从个人方面做的更好吧。


我缓慢吐出一串啊吧啊吧并不再想说话