2026 ICPC 西安邀请赛游记
零、比赛名额
西安赛站和下半年的区域赛由同一主办方承办,往年一直有赠送区域赛名额的传统,因此邀请赛的报名格外激烈。我们最初报名时一波三折,并没有拿到正式名额。
直到某天早上,我意外从一位朋友口中得知,有一些队伍临时退赛了。于是我抱着试一试的心态联系了西北工业大学的负责老师,没想到阴差阳错之下,我们真的获得了这个候补名额。
这个名额来得突然,也来得幸运。于是,我们的西安之行就这样开始了。
我们的队伍配置是,大二的我,大三的42学姐 @42i196,大四的陆学长
一、初到西安
西北工业大学位于西安市长安区,地处秦岭北麓,周边地广人稀,颇有几分偏僻。
我们一行人于五月一日深夜抵达西安,到酒店办理入住时,已经接近十一点。友校的羊驼先生非常热情,下午帮我们完成了签到,等我们到达酒店后,又专门把比赛物资送了过来,实在令人感动。
安顿好之后,我和陆学长在酒店周围简单吃了点小吃,随后便回去休息。毕竟第二天就是比赛日,养精蓄锐才是头等大事。
二、比赛日
1. 热身赛
首先进行的是热身赛。
开赛后,我先配置比赛环境,并编写了 VS Code 的相关脚本。环境确认无误后,我们开始做题。热身赛整体比较顺利,我们切掉了三道题,最后还剩下一道二进制优化 DP。
考虑到热身赛的主要目的还是熟悉环境和流程,我们没有继续往下硬写。期间,陆学长买了几个包子给我们当早饭,也算是在正式比赛前补充了一波能量。
2. 正赛开局:两分钟一血,五秒之憾
正赛开始,试题册一拆封,我迅速通读了一遍题面,很快发现了一道非常简单的题:E 题。
和队友示意之后,我立刻开始写代码。大约一分钟左右,代码就敲完了。这时 42 怂恿我直接提交,但我觉得还是稳一点比较好,于是花了十几秒跑了一下样例。
确认无误后提交,果然通过。
E:1/2,Accepted
不过也正是因为这十几秒的求稳,我们最终以 5 秒之差 错失了最快解题奖。这也成了整场比赛中最令人遗憾的一件事。
当然,这是后话了。
当时两分钟过掉第一题后,我们的排名一度来到全场第二,整个队伍的氛围瞬间轻松了许多,我本人的紧张感也随之消失,比赛状态一下子就出来了。
3. 前一小时:四题一发,节奏极佳
随后,42 发现了第二道相对简单的题:D 题。他很快开始敲代码,而我则继续在试题册上寻找其他可做题。
不久后,42 顺利 AC 了 D 题。
D:1/33,Accepted
紧接着,我开始写 J 题。这题思路比较清楚,实现过程中也没有出现太多波折,很快一发通过。
J:1/40,Accepted
就这样,我们已经通过了三题,而且全部是一发通过。这个开局对于队伍士气来说非常关键。
随后,我开始和 42 讨论 A 题。相比前三题,A 题明显要更难一些,需要抓住题目的核心性质。好在 42 很快找到了关键点,我们讨论清楚后开始实现。
大约 15 分钟后,A 题再次一发通过。
A:1/55,Accepted
此时比赛才刚刚开始 55 分钟,我们已经通过了 4 题,排名来到 27 / 353。
看到这个排名时,我意识到:凭借当前的过题速度和罚时优势,我们很有希望去冲击一枚金奖。那一刻,整个队伍的信心都被点燃了。
4. 中盘:B 题遇阻,L 题破局
这时,陆学长发现 B 题 似乎也不难,但代码细节比较复杂,于是开始写 B 题。随后,42 也加入了 B 题的思考。
与此同时,我在研究 L 题。
L 题是一道非常有意思的构造题。可惜我的构造能力有限,虽然能感觉到它有突破口,但一时间没能想出完整方案。不过我相信,只要 42 从 B 题中抽出身来,我们一定有机会把 L 题拿下。
很快,B 题陷入了瓶颈。于是我把 42 拉过来一起讨论 L 题。
经过数十分钟的推演和尝试后,42 成功构造出了正确方案。我们确认细节后提交,又是一发通过。
L:1/170,Accepted
此时我们已经来到 5 题 300 罚时,排名依旧非常靠前。L 题的通过对我们来说非常关键,它让我们从“开局顺利”真正转化为了“成绩落地”。
5. 后半程:M 题与 B 题的双重遗憾
L 题后面紧接着就是 M 题。它可以看作是 L 题的 hard 版本:题意几乎一致,只是对构造方案的开销要求更加严格。
我和 42 都很想攻破这道难题,于是几乎一头扎了进去。与此同时,陆学长继续努力 debug B 题。
我们不断尝试 M 题的构造方案,也反复调整思路,但始终无法通过。直到比赛封榜,我们仍然没有找到完全正确的做法。
封榜之后,我们开始和陆学长一起研究 B 题,试图在最后阶段把它补出来。但遗憾的是,最终 B 题也没能 AC。
最终正赛成绩定格为:
| 题目 | 状态 | 提交情况 |
|---|---|---|
| A | AC | 1/55 |
| D | AC | 1/33 |
| E | AC | 1/2 |
| J | AC | 1/40 |
| L | AC | 1/170 |
| B | 未通过 | 4/296 |
| M | 未通过 | 2/157 |
- M 题提交少是因为 L 是 M 的 easy ,我们直接通过L测试正确性了,实际上交了很多发。
最终总成绩:
| 项目 | 结果 |
|---|---|
| 过题数 | 5 |
| 罚时 | 300 |
| 排名 | 106(队伍排名) / 85(学校排名) |
| 奖项 | 银奖 |
三、讲题与滚榜
讲题环节中,我们发现陆学长的 B 题思路几乎与题解完全一致,只是在一处细节上出了问题,导致最终没有通过,实在可惜。
而我们 M 题的构造思路也和题解相差不远,但提交始终无法通过,说明方案中可能仍有某些特殊情况没有覆盖到。
最激动人心的自然还是滚榜环节。
由于我们只通过了 5 题,一开始大家都比较担心:会不会最终掉到铜奖区域?不过结果是好的。凭借前期极快的过题速度和较低的罚时,我们最终以 5 题第 3 名 的成绩拿到了银奖。
金奖线是 7 题 821 罚时。如果 B 题和 M 题能够成功解出,我们确实很有希望冲击金奖。想到这里,遗憾当然是有的,但更多的还是动力。
四、总结
本次比赛,我们收获了一枚 ICPC 全国邀请赛银奖,刷新了学校历史。同时,结合这次比赛的成绩,我们也基本锁定了区域赛名额,这无疑是此次西安之行最实在、也最重要的收获之一。
当然,这场比赛仍然留下了一些遗憾:
- 以 5 秒之差错失最快解题奖;
- B 题因为细节错误,没能转化为 AC;
- M 题构造未能彻底突破;
- 与金奖擦肩而过。
但这些遗憾并不是终点,而是我们继续向前的理由。
银牌落定长安夜,未尽之意在来年。
我们下次比赛再见!