Day -1
今天要去南阳了,所以我刚刚去寺庙求了一签,上面写着凶,找寺庙主持解签,主持说我拿反了,那是区。
经由福州大学生活区 \(\to\) 长乐机场 \(\to\) 郑新机场 \(\to\) 郑州东 \(\to\) 南阳东 \(\to\) 南阳宾馆,历时十小时终于到达酒店。领取了丰厚的伴手礼。
南阳宾馆有些简陋了,这就是南阳诸葛庐吗。
Day 0
早上乘坐大巴车来到场馆,参加了一下开幕式。南阳理工学院准备的很用心!开幕式抽奖又没中 TAT,q 哥中了一个手表,有点爽。
下午的热身赛比较简单,很快就 ak 了。随后便在场馆里闲聊,我闲来无事就用机子敲了一个多项式模版,结果频频出错。
随后去分论坛听了一下讲座。听到 jbls 讲解他对于算法竞赛命题的理解,其中谈到了 "奖励型" 与 "惩罚型" 题目,我自己的理解是:
奖励型:你的知识储备可以有效地帮助你找到解题的线索。
惩罚型:你需要得出 Key Observation,才可以解出题目。
突然发现自己 24 赛季现场做的题都是惩罚型,25 赛季现场做的题较多是奖励型。不过在我心中还有一类「2024 ICPC 上海站型」,就纯恶心选手来的。
然后去听了同花顺的讲座,后续抽奖环节我的两个队友都中了小奖(而且还是连着中的),难道我真的和中奖无缘吗。最搞笑的是主持人说:"祝大家明天也有这样的好运气"(伏笔+1),这是什么恶毒的诅咒。
晚上和几个朋友们出去吃了一下校外的烧烤,南阳的物价真是实惠啊,爽造串串。
Day 1
早上九点开场,依旧倒序开题。看了几个题之后都没有找到明显的签到。看到 L 的时候,发现是线性基问题,马上 call 了对线性基有所研究的宇哥过来看。
有队伍通过了 K 题,于是我就去看 K 题。很快就发现问题 1 的答案肯定是 \(\max(n - 1, a_n)\),想了一会发现重复的元素以及超过范围的元素必须操作。然后就没有进展了。
与此同时宇哥已经会做 L 了,只需要前缀线性基找出 \(O(n \log V)\) 个不同的线性基,正交化之后使用哈希去重即可。先让宇哥上机写了一会。
过了一段时间后,我的 K 题还是不会做。意识到有可能会卡题就丢给 q 哥了,q 哥一开始简单想了个做法以后交给我上机写了一下,但是样例比较强,被样例 hack 掉了。后面 q 哥打了个补丁,看样子是比较正确了,通过了所有样例以及手造的 case,但是交上去居然 WA 了(赛后发现是因为代码写挂了 ...)。我们两个一下子就有点乱,后面看了一段时间也没有找出什么很根本性的问题。于是只能暂且搁置,交给宇哥回头处理这个题了。
到了这个时候,榜上却只有 K 和 L 有人通过,我只能去盲开。每个题目了解完题意之后,都只堪堪想了一半。因为没有超一流强队带榜,完全不能确定一个题是否可做,脑子进行了很多无用的思考。
q 哥一开始想的 B 题疑似有点想法了,他告诉了我类似快速排序那样的分治思路,但其实具体细节其实完全没有想好。感觉实现起来很复杂。
然后看榜发现 G 慢慢有人过了,于是就去看了一下 G 题,一时间没有什么思路。与此同时宇哥的 L 题好像也不是很顺利,样例一直没有调出来。动态调试了半天,感觉宇哥有点做懵逼了,于是就先折返回来帮我们擦屁股(做 K)。宇哥马上就秒掉了,直接从前往后做,把必须要操作的元素都操作了即可,对此我是暂时没想到这是很完备的思路,但是确是通过了所有的样例以及手造的 case,交上去也通过了(2:05)。
而后一段时间,宇哥通过动态调试改完了 L 的所有 bug,终于可以通过所有样例了。然而交上去却是一发 TLE,TLE 之后看了一下宇哥的代码,发现他要对 \(\mathcal{O}(n \log V)\) 个线性基做单次 \(\mathcal{O}(\log^2 V)\) 的正交化,所以时间复杂度就是 \(\mathcal{O}(n \log^3 V)\) 的,这不 T 就有鬼了。宇哥意识到了这一点之后,就去尝试魔改代码。
此时我们对时间的分配已经完全乱套了,或者说当时大脑已经一片浆糊,根本没有去思考如何分工了,所以这场比赛我们其实有很多无效时间。之后的时间,大概是我帮助宇哥想一想 L 怎么做,然后 q 哥去想 G。
魔改 L 题的过程中也遇到了很多问题,就比如应该如何把正交化的时间降下来。宇哥很快就想到了一边插入一边正交化,但是要如何在前缀线性基中进行正交化呢,这又涉及到了我的盲区。依稀记得后面又踏入了很多个误区,WA 了很多发 ...
此时看榜发现 L 都已经过了 70 多个队伍了,特别是我们同校的另一支队伍都过了 L。提醒宇哥哪有那么多队伍会前缀线性基啊,但好像宇哥这个时候已经过载了,很难再想一个新的实现方式,真是走远了 ...
大概三小时半的时候,q 哥好像会做 G 了,他告诉了我一个 Key Observation:长度 \(\geq 3\) 的全 \(0\) 段一定有一种填法可以满足两边段的限制。所以可以根据这个性质 dp。而后由我来构思 G 题,将 L 交给他们做。让 q 哥帮忙写了一下 L 的对拍。
这时候 G 题有了一个逐段转移的思路,看起来还挺好写的。我在快封榜前的时候上机,自信地和队友说:"给我 15 分钟"。但是真正当我上机,看了一下样例又重新发现这个题需要输出方案。逐段转移的实现方式比较难写,还需要根据两边段的颜色来分配中间段的颜色。这下 15 分钟肯定写不完了,但是也顾不了那么多了。于是我写写写,写得天昏地暗,直到四小时三十五分的时候才写完并调试完。交上去仍然是 WA,于是就先下机静态调试。
在我上机的时候,宇哥好像已经知道了 L 要怎么改,于是就上去改改改。在此期间我也找到了 G 的一处 bug,看了一段时间后上去交了一发还是 WA ...,已经黔驴技穷了。
到最后的最后,L 的代码好像已经改对了,并且时间复杂度也是比较正确的 \(\mathcal{O}(n \log^2 V)\),四小时五十九分半的时候交了最后一发 ...,我们等待着奇迹发生 ...
虽然到赛后 pta 也没显示我们是否通过了 L,但是我突然想起来宇哥去重用的是 std::set,常数太大了,确实很难通过了。
最后也确实 TLE 了。
赛后才意识到,我们三个人都不在比赛的状态,态度也都有问题。一个没有准备的队伍,也只能将胜利果实相让了。只是这一次有些过于离谱了(这下成为 "冲击波" 战队了)。
我是一个很自负的选手,心态也经常出问题。
还记得去年校赛前一周,我的心境很浮躁,我找教练倾诉:"我觉得我坐到了现在的这个位置,不拿校赛第一就算失败"。教练说:"你要是想在校赛 100% 夺冠的话,那你应该得有全国第一的水平才行啊"。教练也一语点破了我:"你应该允许自己失败!"
没有人可以一直赢下去。虽然最后校赛的结果还是好的,但这句话也给我留下了很深的印象。
自 2024 ICPC EC Final 以来,我在 FZU 的组队经历都比较顺利,我的两位队友永远都是校内顶配。承蒙教练和队友的厚爱,宇哥也很相信我,经常鼓励我。
「断言」省赛夺冠,「惡·即·斬」区域赛大捷,后续的 2025 ICPC EC-Final 和深圳邀请赛也都取得了不上不下的成绩。其实每场比赛在我眼中只是大赢、中赢、小赢的其中一种罢了。
但却没想到大败来的这么快 ...
回顾我的 OI 经历或许也是如此,初二就早早获得了省一等奖,心态飘得很。一个不允许自己失败的人,是观察不到环境的微妙变化的。后来步入瓶颈期,在省队线外徘徊,水平也没有很大的突破。
还记得我的 OI 生涯最后一场比赛 —— 2023 联合省选。时任长乐一中教练的董老师安慰我 "胜败乃兵家常事",或许我是知道这个道理的,但那已经是我 OI 生涯的最后一舞了,没有机会再改写故事的结局。只能默默接受这份遗憾。
但庆幸的是,我的 ACM 生涯还没有结束。一切尽在不言中。
我的生活没你们浪漫,我的生活很有压力,还有些不好的回忆,我现在最希望做的事情,就是用未来把它们通通改变。
在闭幕式的时候,体育馆的观众席上坐满了南阳理工的同学。主持人示意南阳理工的同学们向远道而来的选手们表示欢迎,山呼海啸般的欢呼声与鼓掌声从四面八方席卷而来,那一刻我真的很感动,泪水忍不住地打转。我才意识到是来这里享受比赛的,而不是来这里犯了一个大错。很感谢南阳理工学院的热情招待,希望未来有缘再相遇。
在滚榜滚到我们的 "老对手"(其实是我在往自己脸上贴金)复旦大学「使题来袭」获得铜牌的时候,后面南大的队员说 "有点丢人",另一个队员补了一刀说 "没事,还有个更丢人的"。我转头看向他们,他们也和我相视一笑,我也挤出无奈的苦笑。其实还挺意外的,感谢他们把我们队当成一个一流队伍,希望下次再见时不会这么丢人了哈哈。
滚榜结束后和几个朋友们出去吃了一下校外的烤鱼,玩得很开心!但是生活还要继续,加油吧。
