2024ccpc福建省赛总结
24ccpc福建省赛总结
赛前
赛前拉着半退役的队友们训了大概五六场,可能因为vp的是CF上23年以及更早之前的省赛,感觉还好,每次都有金线内,我还顺带补了些数学知识。
这次赛前我充分吸收了南京我发烧倒下了的教训,赛前一周停止训练,让大家放松+整理板子。周六请队友们在学生街吃了顿饭,但也没谈比赛,捞捞游戏和家常。因为都知道是最后一场了,能打好当然很开心,但是得失好像也没那么重要,我就想好好告别。
热身赛打完虽然打不好,不过给他们灌了点鸡汤,起码我们手速还是很快的~打了会游戏后打算睡觉结果睡不着,以前赛前失眠都会很担心影响比赛,这次松弛感拉满,睡不着就睡不着了,一颗心脏怦怦跳,巴不得比赛快点来。最后是快四点睡着+八点起床。
赛中
开始做D时看不少队伍过了,G提供了一个听起来没什么错的双指针假做法。一时没找到反例就让他去写了。交上去没过。发现有bug,改。改了两处后发现还是没过。G在写D时我看了L,感觉有思路,在他打印完代码静态调试时也上机写了一遍,不过交上去也没过,因为代码并不复杂,我也停下来重新思考思路的正确性。发现G挂了两次后我就叫停了,感觉可能需要换个人重构,或者换个思路。于是我们手上卡了两道签到了。
W发现了我L题代码的错误。在所有该开longlong的地方都开了,除了自定义cmp里,我写了int a,int b。然而题面是10^10,就爆掉了。以前做的题都是10^9,所以写cmp时根本没想到longlong。改完这里后过了L,松了口气。
接下来我觉得c是道博弈推结论+某种数据结构,应该可做,虽然不知道做法是啥。于是把博弈丢给他们想,我去重构D。D我抛开了双指针的思路,想了一个贪心,但是有点不好写。需要在set<pair<longlong ,int>>里面二分。我知道int类型的set可以调用lower_bound(),但是不知道pair类型的怎么调用lower_bound()。就维护了一堆东西去实现这个事情。交了一次没过,TLE。调完一个错误后还是TLE,我没辙了,以为是stl用了太多常数大。
至此D已经挂了5发。
我和G一起看D,W在搞博弈。突然G跟我说,好像直接调用lower_bound(s.begin( ),s.end( ))是O(n)的,要用s.lower_bound( )才是log。我甚至翻我那套oiwiki,上面还真写了这个。改完后就过了,开场三小时,终于才把简单题都做完。
c本来应该会很顺利,他们快速得出了博弈的结论,我开始敲线段树。结果敲到一半发现题意"读错",然后又不用写线段树了,换一个写法。写着写着发现又"读错"了,还是要线段树,这里浪费了不少时间。我写完了线段树,调试了一些细节,终于在封榜后两发过。
剩下的时间本来还想再努力看能不能做一道题,确实是做不出来了。
赛后
赛后滚榜遇到了一些奇怪的事情,感觉滚榜人说话不清楚,滚榜不专业。讲题的视频放映出来效果很差,听不清说什么,字也看不清楚,如果有写好的题解会好很多。滚到我们队时看着我们队从rk68过了C上升到了rk28,周围响起一片掌声时,好爽啊。录下来了,感觉这场比赛有这么几个瞬间也就够了。
然后一直紧张地在算现在有多少队伍超过了我们,算到发现掉不出银牌线后松了口气,说苟住了哈哈哈哈。接着就是尘埃落定,邀请赛银+省赛银,拿完牌就回去修整了。
总结
这场虽然失误很多,不过结果还是满意的。考虑到队友其实都处于半退役了,最近训练强度也没上得很高,金奖确实有点难。甚至因为失误很多差点没有银,最后苟住了还是很开心。这种开心就像考试时刚好踩线85分4.0绩点,少一点可惜,多一点浪费。这种开心还是终于可以放下了。因为去年南京的事情一直觉得很对不起他们,是我赛前发烧+决策失误导致我们队三题铁首,这场虽然队友状态也没有特别好,我也激动得没怎么睡,但我还是力挽狂澜了,负责了前2题的思路+全部的代码+节奏把控,对得起W喊我老大了。希望他们考研加油,不ac不睡觉1.0完结,下个赛季还用这个队名。不ac不睡觉2.0开始了,我得继续往前走,L的仇也还没报呢,希望今年区域赛可以冲银牌。