CSP2024-17

A

题意:一个人在原点,每一时刻可以向左或向右一格,或不动,现在要到达终点 \(m\)

其中有 \(n\) 个关键坐标 \(x_i\),每个关键点会在被第一次经过的 \(t\) 秒后产生一枚金币。

求收集完 \(n\) 枚金币到达 \(m\) 的最小时刻。\(n \le 10^6, 0 < x_1 < x_2 \cdots < x_n < m \le 10^9, t \le 10^9\)

我们的决策肯定是一直往右走,到达某一个关键点立刻回头去捡之前产生的金币,一个点不会被两次回头遍历到,否则不优。

\(f_i\) 表示第一次达到 \(x_i\)\(1 \sim i - 1\) 都收集完毕的最小时间。

肯定是第一次到达 \(i - 1\) 就立马往回跑到最左边没有收集的点 \(j\),然后一路冲到 \(i\)

要使 \(j\) 的金币被收集至少需要时间 \(t\),而从 \(j\)\(i - 1\) 再折返到 \(j\) 的时间是 \(2(x_{i - 1} - x_j)\),所以要取 max:

\[ f_i = f_j + \max\big(t, 2(x_{i - 1} - x_j)\big) + x_i - x_j \]

把 max 拆开:

\[f_i = \begin{cases} (f_j - 3x_j) + (2x_{i - 1} + x_i) & 2x_j \le 2x_{i - 1} - t\\ \\ (f_j - x_j) + (x_i + t) & 2x_j \le 2x_{i - 1} - t\\ \end{cases} \]

两端都是连续区间,且分界点单调,单调队列维护最小值,时间复杂度 \(O(n)\)submission

B

题意:给定初始串 \(s\),最小化操作此时,使得 \(s\) 变成目标串 \(t\)

其中,一次操作定义为:从前往后遍历 \(i\)\(s^{\prime}_i = s_i\)\(s^{\prime}_i = s^\prime_{i - 1}\)\(n \le 10^6\)

把上述操作展开到平面,实际是找初始位置 \(s_i = t_j\)\(i \to j\) 的一条路径。

首先路径一定无交,不妨只关心 \(i\) 的目标区间左端点。

从后往前贪心,假设当前在一个左端点 \(t_i \ne t_{i - 1}\),找到最大的 \(p\) 满足 \(s_p = t_j\land p \le j\),且小于上一个匹配位置。

当前路径肯定是靠紧上一条路径最优,因此需要关心所有 $ \le i$ 的转折点(\(\downarrow\rightarrow\))。

考虑更新当前路径后的转折点,首先所有 \(\le i\) 的转折点横坐标减一,纵坐标加一,可以设一个偏移量 \(d\) 解决。

如果 \(p\) 与上一个匹配位置不相邻且 \(p < i\),则新增转折点 \((p, 1)\)

假设 \((i, j)\) 是转折点,说明 \(t_i\) 一定不被当前 \(p\) 覆盖,一定有一条之后的路径经过该点上方。

答案是最大转折点纵坐标加一,考虑上述引理,必然有一段目标左端点到右端点的路径经过最高拐点。submission

C

题意:\(n\) 个点的有向图,给定 \(m\) 条边。重复进行感染操作:如果存在边 \(x \to y, y \to z\),则连边 \(z \to x\)

允许自环,求最终图中边数。\(n, m \le 10^6\)

对原图进行三染色,红点连向蓝点,蓝点连向绿点,绿点连向红点。讨论每一个弱连通块:

如果染色失败(矛盾),设该弱连通图大小等于 \(k\),那么他会被感染成一张完全图(双向边,包括自环),贡献 \(k^2\) 条边。

如果染色成功且不包含所有颜色,不会发生感染操作。

如果染色成功且包含所有颜色,最后所有对应点都有连边,总边数等于 \(cnt_r \times cnt_b + cnt_b \times cnt_g + cnt_g \times cnt_r\)

性质1:完全图具有感染性。

\(x\)\(K_n\) 随便连一条有向边,则该点会和所有点连一条双向边,并形成自环,即 \(K_{n + 1}\)

假设存在边 \(x \to y\),则可以通过 \(y\) 的自环形成 \(y \to x\),进而形成 \(x\) 的自环,剩下的易证。

性质2:四元环(有向:\(1 \to 2 \to 3 \to 4 \to 1\))能生成 \(K_2\),最终演化成 \(K_4\)

性质3:五元环能生成 \(K_2\),最终演化成 \(K_5\)

性质5\(n\) 元环(\(n \ge 7 \land 3 \nmid n\))先生成 \(5 \to 3, 3 \to 1\),再生成 \(1 \to 5\),即 \(n - 3\) 元环,进而生成四/五元环,最终生成 \(K_n\)

一个弱连通分量染色失败当且仅当出现一个不被三整除的环,即会被感染成完全图。

性质6:称一个弱连通分量全连接当且仅当对应颜色的点对都存在一条边。三元链能转化为三元环,三元环是全连接的。

性质7:全连接局面加入一个点和连入的一条边,必然还是全连接局面。

假设加入的是红点,一定是连向一个蓝点,该蓝点可以连向所有绿点,因此所有绿点可以连向新点。

同理,连向新点的一个绿点能被所有蓝点到达,因此新点可以连向所有蓝点。

如果染色成功且存在三种颜色,必然能生成一个三元环,结论成立。submission

D

posted @ 2024-09-09 14:25  Lu_xZ  阅读(27)  评论(0)    收藏  举报