2024.10.26 CSP

当天:


上午前两题模拟即可,第三题打个表即可,应该问题不大

民间数据code \(\quad\) 民间数据code \(\quad\) 民间数据code

第四题一开始想的是图论建模,通过分块优化建图转化为在 \(O(m)\)\(O(m)\) 边(边权 \(0/1\))的图上求出超级源点到某个点是否存在长度为某长度的路径,时间复杂度正确,但常数极大,也没调出来,最后大概 \(60\)

赛后遇到 \(cat\),交流了一下,正解是 \(dp\),思路类似这篇

民间数据code


下午第一题直接模拟

民间数据code

第二题求出每个车对应的可以检测到它超速的监控的下标区间,区间不为空的数量为第一问答案,令 \(f_i\) 表示前 \(i\) 个监控中保留的数量,则每个区间 \([L,R]\) 转化为 \(f_R-f_{L-1}\ge 1\),即 \(f_R\ge f_{L-1}+1\),直接向后递推即可,瓶颈在于求区间时的 \(\log\)

民间数据code

第三题只打了 \(n^2\)\(nV\) 的暴力,大约 \(65\),赛后听讲解大概懂了

\(f_i\) 表示前 \(i\) 个位置,其中第 \(i\) 个位置颜色和前一个不同的最大 \(\sum_{1\le j\le i}c_j\),然后相同颜色的一段一起计算,\(f_i=\max_{1\le j<i}(f_j+[a_i=a_{j-1}]a_i+\sum_{k=j+1}^{i-1}([a_k=a_k-1]a_k))\)

最后一项可以拆成只和 \(j\) 有关的一项和只与 \(i\) 有关的一项,则 \(f_i=\max_{1\le j<i}(f_j-pre_j+[a_i=a_{j-1}]a_i)+pre_{i-1}\),维护到当前为止 \(f_j-pre_j\) 的最大值和每个 \(v=a_{j-1}\) 对应的最大值即可做到线性时间

类似这篇

民间数据code

第四题拿了最基础的一档和 \(A\) 性质,\(B\) 性质没有调出来,大概 \(28\)

学习了这篇

民间数据code


11.4:查出 J 组 100+100+100+60,S 组 100+100+65+28

posted @ 2025-01-29 10:32  Hstry  阅读(5)  评论(0)    收藏  举报