CSP-S 2024
去年 S 打成屎了,我要蓝√!!!!!!!!
CSP 怎么能不 CS?CS 了一个上午,顺便背了下快读。
进厂!看见了退役的同学在做志愿者,祝他未来可期吧。也希望自己能够超常发挥。
垃圾鼠标真难用。
很好,全是传统题。只有 T2 开了两秒。
T1,这不排个序然后优先队列乱搞就好了。5 min 过了,NOIP 我来了!!!!!
T2 怎么是物理题?再看一眼 T3,神秘 dp。
首先 lower_bound
能找到第一个检测车辆的测速仪,为 \(k\)。
然后 \(a=0\) 的速度一样没什么好说的;\(a<0\) 的在 \(k\) 时取到最大值;\(a>0\) 的在 \(m\) 时取到最大值。
直接在最大值处判断是否超速就解决第一问了。
然后每辆车超速的一定时一段区间,直接二分不就好了????
开打!!!!
等等,转换为区间之后还有第二问。要选出最少的点使所有区间都至少有一个点。
好像这个问题很经典,但是我没做过。左端点排序好像不太能贪,右端点呢?诶!!!!还真可以。
稳了,一等有了。
一开始小样例没过,调了一会所有大样例就过了。现在是北京时间 \(\texttt{15:20}\)。
T3 看上去非常可做,是我最喜欢的 dp。
理所当然设 \(dp_{i,0/1}\),先想想 \(\mathcal O(n^2)\) 怎么做。
对每个点枚举上一个和自己颜色相同的点,中间那一段颜色相同。
但是中间那一段跟前面颜色相同的还有贡献,第三个样例过不了。
然后发现第二维一点用都没有,丢了得了。
完了不会 \(\mathcal O(n^2)\) 的我要输麻了。
接着发现一个结论:
如果有连续一段数字是一样的,那么将这一段染成同样的颜色一定最优。
去重把贡献算出来就好了,做完后能够保证相邻的两个数不相同。
玩着玩着样例又发现一个结论:
如果某个点有贡献,那么上一个颜色相同的点一定是 最大的 \(j\) 使得 \(A_j=A_i\)。
那直接转移总时间复杂度不就是 \(\mathcal O(n)\) 的了??
\[\large dp_i=\max\{dp_{i-1},dp_{l_{a_i}+1}+a_i\} \]芜湖,过大样例了。我无敌了,我怎么输?????
现在是北京时间 \(\texttt{16:52}\)。
T4 什么勾石,一点都不想打。暴力建树好像能拿一点分。
随便打了一点,能不能拿分随意吧。
现在是北京时间 \(\texttt{18:00}\),左边的小登怎么踏马的一直在叫我有三百了,真烦,能不能来个监考把他杀了。
不行,我要把他拿下,我要打 T4 暴力!!!
战斗欲瞬间点满了踏马的。
本来只想混 A 性质的,发现多个 \(m\) 的复杂度可以拿下更多数据。
打了个不知道时间复杂度是多少的代码,但是能过 \(n\le 500\) 的大样例。
结束了,时间不是很够,没有检查 T4 的 freopen
。