CSP-S 2024游记

貌似是 NOIP 2021 之后的第一次游记。

初赛体感很难,阅读程序好多部分都没算清楚,完善程序好几个空改了又改。

但出考场上洛谷估了一下貌似不错,得了87分,于是乎进了复赛。

考前完全没打模拟赛,前一晚匆匆打了一些模板后就睡觉了。

高三周六上课,上午考了一场生物一场化学,生物70分钟80多道选择真的吓人。

考场在101中学,考前印象最深刻的是不让带水与食物进考场,隐隐有不详的预感。

打开下发样例,貌似有两道都是输入 \(n\)\(n\) 个数,输出一个数,感觉题很对胃口。

\(14:30\) 考试开始

一开题就看呆了,直接把 \(r_i\) 排序就做完了吧?

\(14:44\) 过了 \(T1\),开 \(T2\)

很迅速地把题目转化了一下,对 \(a\) 的正、负、零分类讨论,很快地解决了第一问。

突然意识到第二问是一个区间覆盖问题,不是很好做,于是先把所有的区间处理出来,做了特殊性质 \(A、B\),此时为 \(15:47\),只有 \(140\) 分,不妙不妙。

迅速地冷静了一下,发现区间覆盖可以预处理所有区间的信息,再做一个简单的 \(dp\)

作为老年退役裸考选手,代码能力急剧下滑。\(16:30\),拿到 \(200\) 分。

\(T3\),想了半天 \(dp\) 没头绪,开 \(T4\)

对于 \(T4\),我本就不抱着拿什么分数的预期,打算打完特殊性质 \(A\) 就跑路。

可是还是低估 \(T4\) 的恶心程度了,花了半个多小时还是没有调过,于是果断放弃 \(16\) 分,转战 \(T3\)

一维 \(dp\)?记录的信息还是太少,思考了半天没有头绪。

于是考虑令 \(f_{i, j}\) 表示前 \(i\) 个数,前一个蓝色为 \(j\) 位置,\(i\) 位置为红色的最大值,令 \(g_{i, j}\) 表示前 \(i\) 个数,前一个红色为 \(j\) 位置,\(i\) 位置为蓝色的最大值。

有转移:

\[f_{i,i-1} = \max_{j=1}^{i-2} \{ g_{i - 1, j}+[a_i = a_j] \times a_i \} \\ f_{i,j} = f_{i-1,j}+[a_i = a_{i-1}]\times a_i(j \le i-2) \\ g_{i,i-1} = \max_{j=1}^{i-2} \{ f_{i - 1, j}+[a_i = a_j] \times a_i \} \\ g_{i,j} = g_{i-1,j}+[a_i = a_{i-1}]\times a_i(j \le i-2) \\ \]

显然,\(f_{i,j} = g_{i,j}\),故只用设置一个 \(f_{i,j}\),如此有了 \(O(n^2)\) 的暴力 \(50\) 分,此时已经只剩一个小时不到了。

提高注意力,发现了存在 \(A_i \le 10\) 的部分分,于是考虑对于值域进行 \(dp\)

\(f_{i, j}\) 表示前 \(i\) 个数,前一个反颜色为 \(a_k = j\)\(i\) 位置为该颜色的最大值。

转移为:

\[f_{i,a_{i-1}} = \max_{j=0}^{10^6}\{f_{i-1, j} + [a_i=j]\times a_i\} \\ f_{i,j} = f_{i-1,j}+[a_i = a_{i-1}]\times a_i(j \in [0,10^6]) \\ \]

但是考场上并没有写出式子,因此写了一个线段树维护,敲完代码已经 \(18:10\) 左右了,没有通过大样例。

可能是考的怎么样都无所谓的缘故,非常松弛地找到了错,调了出来,此时是 \(18:25\)

很水的大样例都跑了 \(1.5s\),但真的没有时间卡常了,直接交上去了。

估分 \(100+100+[75,100]+[0,16] = [275,316]\)

出考场学弟们全部 \(340+\),祝他们好运。

生物选择错了许多,祝我好运。

posted @ 2024-10-31 23:20  David24  阅读(10)  评论(0编辑  收藏  举报