2024年个人 ICPC/CCPC 参赛总结

· · 生活·游记

2024年个人 ICPC/CCPC 参赛总结

看前声明:以下内容与 CCPC(济南)、ICPC(南京)、ICPC(香港)三站的试题内容有关,如不想被剧透试题内容,请谨慎观看。

今年,作为一名大二年级学生我一共参加了三场 ICPC/CCPC 比赛,共有 3 位队员与我一同参加了这些比赛,取得了三枚铜牌(可以合成一个银牌吗?)。

CCPC(济南,2024.10.26/27)

作为一名曾经的 OI 蒟蒻,南京站是我参加的第一场正式的全国性质的 XCPC 比赛,赛前加入了赛站的交流群,选手们都很活跃,第一次感受到了很好的 XCPC 比赛氛围。

热身赛

热身赛共五题,上来先被第一题“乱来不得”卡了,我们上来直接乱来,然后试了试没过,开始读题面,发现没输出 T,改了一发变成 TLE 了,队友了解了有关评测机特性后的内容通过了此题。我随便乱搞了一个二分图的构造题,直接 dfs 了一下然后输出,神奇地通过了此题。热身赛结束。

正式赛

开赛后我们三个人同时开始看题,我们把题目统统分掉,三个人分别从 A、E、I 开始顺序读题。我读一会题抬头看一下榜,没一会 A 题就有人通过了,我便招呼大家一起看 A 题。我迅速理解了题意,把题目丢给另一位队友来写,写完交了一发,WA。然后我直接上机开始重构代码,通过了此题。

随后队友发现了 E 题的一些性质,开始尝试完成这道题,本题有奇奇怪怪的超大数据,他写了 Python,但是由于一些没有发现的问题,这道题并没有通过,直到比赛结束也还是那样。

这时看了看榜,队友开始做 J 题,他一个人思考了一会,使用了一堆 STL,很轻松的通过了此题,给我看呆了。

那么这时候我在干什么呢?我看到了 I 题是一个树上问题,我玩了玩样例,给出了一个“短链剖分”(没错,就是长链剖分反过来),然后兴冲冲的丢给队友,讯速地被另一个队友 hack 掉了...

我改看 B 题,开始打牌。首先给出了一个“所有类型的卡牌先统统模 5,后面贪心的做法”,队友没有找出反例来 hack,于是便开始调这种方案。调了半天样例过了交上去 WA 了,可是我一直认为这是正解,队友觉得哪里有问题可是找不出反例,所以我继续改代码,还尝试写对拍。(最后拍出来了,但是我暴力的对拍代码答案竟然是错的???)

我的队友是 dp 高手,他在这期间认真独立思考 F 题,完成了这个神秘的计数问题,一次通过。

接下来还剩一小时,封榜了。看了看排名,感觉做不出这个 B 题铜牌不稳,我们集体来看 B 题。最终在队友的提醒下,发现可行的局面数量很少,只需要仔细 DFS 剪枝优化即可。在队友的超神下通过了此题。最终取得了铜牌。

ICPC(南京,2024.11.2/3)

南京站是我参加的第二场正式比赛。隔壁坐的全是强队,我们是那一堆里最弱的。

热身赛

哇哦,好多袋鼠!热身赛五题全是袋鼠!上来我先通过了最简单的交互袋鼠。然后测了测 ICPC 的比赛系统。会用了,然后我就开始抄题解,两位队友去了食堂消费餐券。队友回来发现我抄了三道题解了,强行给我收手了。还好没抄完,要不就要出事了(指第二天打铁)。

正式赛

南京站的正式赛还算友善,有一份中文题面。

还是熟悉的局面,熟悉的开头,三人分别从 A、E、I 开始看题。我一边看题一边看大屏,发现有人过了 E 题后招呼队友去看了那道题,队友看完也很快通过了此题。随后队友看了 J,也很快的通过了此题。

接下来我选择了 G 题,是一道交互题。我大致理解题意后给出了按照重链剖分的思想把树剖成链,然后在每个链上二分寻找答案,可惜这个做法比较难写,当然这个也不是正解(会被卡到 \log_2{n} 的向上取整)。随后我注意到 M 题是计算几何,同时是一道以原神为背景的题目,我便开始做这道题,一直到比赛结束,我都在跟这道题过不去。

队友手里现在有两道题,一道是 B,另一道题是 K。这两个题都被转化成了 dp 问题,K 题队友很迅速的通过了。此时我开始上机打 M,发现 M 对极角排序的分类讨论有很多(我在拿最笨的方法做),还有就是被队友的 VS Code 代码自动格式化整红了。打了半天被队友赶下机,队友开始调 B。在剩一个小时的时候,我知道我已经没有时间做 M 了,于是三人一起调 B 题。在比赛还剩十分钟的时候,队友完成了这道题的全部调试。交上去,RE。我随口说了句:“你把vector<int>a(n+1)里面的所有n+1统统改成n+5。”然后队友重新交了一发,神奇地在最后三分钟通过了此题。

最终南京站也是收获了一枚铜牌,但是很遗憾输在罚时上了。(离银牌最近的一次)

赛后

我们队旁边是北大,我坐在离北大最近的地方,隔壁过题很快,一会过一个题,给我看呆了。周围还有一堆气球,我弱爆了。

ICPC(香港,2024.12.21/22)

赛前

从无锡坐高铁到上海,然后转乘飞机飞往香港机场。在香港机场换完手机卡后发现机场到市区的交通好贵,于是等队友一起打了车。

到了学校后另一位先行到达的队友已经帮我们报到完了,我们合了影然后去了食堂吃饭,饭还是很好的,就是米饭 8.5HKD 一碗(我点的套餐没点米饭,自助结算机上看的)有点抽象。

感谢 PolyU,晚宴吃的最好的一集!

热身赛

发现 PolyU 提供的是笔记本电脑+外接键鼠(大回车)。由于上一次南京站队友开自动格式化代码,本场比赛我选择使用 CLion 当做编辑器。热身赛上熟悉了一下 CLion 的各种配置,打了打代码。我使用的是 CLion 编辑加上命令行编译运行的方式。

正式赛

正式赛前路过气球室,发现里面有一些红色气球和黄色气球,进入赛场后跟队友说悄悄话红色和黄色。开赛后我直接打开 DomJudge,找到了红色和黄色的那两道题开始看。一位队友看 A(红色)题,另一位队友很快给了我一个 E(黄色)题的思路,是一个计算几何(没错又是它),我开始上机抄板子。抄完板子第一个样例直接通过了,可是第二个样例卡住了。此时真签到也出来了,队友读了读题完成了 C 题(真签到)。

我以为是我的板子有问题,于是找到了队友带的资料上的凸包板子开始抄,抄完又跑了一遍还是一样的结果,我英语不好,于是下机和另一个队友开始仔细读题。读完题自己随手画了个图,找到了反例,发现这道题对我们来说不可做,随后放弃。

另外两位队友此时讨论 K 题,简单讨论后在一个小时处通过了此题。

我看了看榜单,开了 G 题,队友开了 F 题,G 题看完以后很快有了一个字典树上统计和的思路,想了想复杂度也是对的,然后上机开始写。写完以后测了样例发现又不对。随后再次开始仔细研读题目,在队友的帮助下,我读懂了这道题,发现自己又读错题了。

队友此时在调 L 题。有了一个神秘的构造思路,然后进行了长达一个小时的优化,最终给出了合理的优化思路。直到比赛结束,我们都在调这道题,但是可惜没有调出来。

最后再次获得一枚铜牌。

写在最后

你说得对,我不认识 exist participate。

最后的总结

感觉今年打了三场 XCPC 比赛,我似乎并没有对正式赛通过题目做出贡献,但是还是获得了三个铜牌...感谢我的三位队友,希望明年下个赛季的比赛继续努力吧。