2024 CSP--S 游记
DAY 0
上午10点从校门口出发,坐着大巴往德州火车站走。
上了火车后,发现7车厢几乎一般都是hzoi的人,huge和xfg在第7排,我在第2排,旁边是xrlong。
到了酒店,下车抓拍了9G,欣赏P
DAY 1
上午的自习没什么事,简单看蓝书和打板子,以及写了一封感慨信。
中午睡了一个小时,然后坐车去考场。
本来挺紧张的,但是合影时大家一起喊“加把劲”直接就给我整乐了。抱着不爆零就行的心态去了。
开题:
T1、 决斗
签到题。直接 $ sort $ 之后双指针就行了。预计 100 pts。
T2、 超速检测
也是签到题。题意可以转化为有一个序列和一堆区间,在序列上选择一些数,其中对于每个区间至少包含一个。直接贪心扫过去就行了,具体来说,把那些区间按右端点排序,然后依次选择每个右端点处,并将包含他的区间标记上,以后这些区间的右端点就无需被选择。
没设eps,但是在洛谷上A了,也过了精度的hack数据,不要被卡。
预计 100 pts。
T3、 染色
解法一:
思考一会发现是DP,先把DP式子写出来:
设 $ f_{i,j} $ 表示 到了第 $ i $ 位,另一种颜色选择的最后一个的下标是 $ j $ 。
那么就有
然后你可以发现从 $ i $ 转移到 $ i+1 $ 时,只有第二种转移会改变第二维的下标,而且转移后的第二维已经确定是 $ i $ ,所以直接转移最大值就行,那么就可以改写DP式子,省去第一维, $ f_i $ 表示与目前的位置的颜色不同的最后一个位置的下标是 $ i $ 的最大贡献,当前的位置为 $ j $ :
对于第一种转移,就是个区间加。对于第二个,对于能加上 $ a_i $ 的情况 ,那么 i 一定是 $ j+1 $ 之前最后一个此类颜色的下标,否则不会更优,对于不能加上 $ a_i $ 的情况,直接取最大值转移即可,那么第二个转移就转化为了单点查询。所以到此我们可以直接上线段树即可。
但其实这个区间加加的是全局,所以其实也不用线段树来维护,那么时间复杂度也可以直接来到线性。
解法二
考场上挺唐的,上来先想到了这种解法,结果当时脑子一抽就把他给否了。
设 $ f_i $ 表示考虑到 $ i $ 位时最大贡献。
那么我们考虑,要想让这一位有贡献就必须得从上一个与他相同的转移过来,然后我当时一想,我虽然知道 $ pre_i $ ,但是 $ pre_i + 1 $ 位置的贡献我不知道啊,于是就否了,但其实直接由 $ f_{pre_i + 1} $ 转移过来就行了,因为 $ i+1 $ 与 $ i $ 一定颜色不同或者 $ i+1 $ 就是当前枚举的位置,对于这两种情况均合法,然后只用算后面那一段的贡献,后面的贡献很好算,因为他们相同颜色的前一位就是下表的前一位,直接预处理 $ a_j = a_{j+1} $ 的情况就行。
那么时间复杂度就是线性的。
这两种解法后者好想又好写(真不知道当时为什么否了),但是第一种想法是从 ABC 里的一个题 Teleporting Takahashi 2 学习来的。
预计 100 pts。
T4、 擂台游戏
好一个黑题,还好当时就看出来不太可做,于是没写。
其实是可以拿点部分分的,但是为什么没拿:
就是考场那个表快了 55 min ,在我过了 T3 之后一看表就还剩 15 min ,然后看了一眼 T4,发现暴力并不好打,本着不爆零就行的心态决定去整理一下文件夹,然后趴在桌子上等着收卷。诶,再抬头已是 18:29 ,我一边纳闷老师竟然都不提示一下一边等着收卷,然后到了 18:30 也没收卷,然后当时我还想: 难道 CCF这么人性,过完 30,到了 31 才收?然后到了 31 他还是没收,等到了 35 发现不太对劲,举手问了一下老师,然后得知表不准。
然后就还剩 50 min,先给T3打了个拍,因为当时T3调的很急,过了大样例后不是很自信,然后就是那个老爷机跑 $ n = 100 $ 的点 跑了十分钟才对了 600 组,发现没什么问题后只剩下 30 min 了,去打 T4 的暴力,打了 15 min才打了 $ \frac{3}{4} $ ,本着不爆零就行的心态果断选择整理文件夹。
预计 0 pts。
整体预计 300 pts
唯一觉得失误的地方就是 T3 因为一个唐氏错误调了很久。
出了考场吃了顿饭就回家了,晚上 2:00 到的家。然后第二天起来后去洛谷上测了一下,确实是 300 pts,希望考场上没挂就行。
UPDATA
100+100+100+0,没挂!
NOIP RP++