好题小记

CF838D Airplane Arrangements

题目传送门

很高妙的题。

直接计算不太好做,考虑把链首尾接起来拼成环,但注意到直接拼就无法判不合法,所以在 $1$ 和 $n$ 中间插入一个 $n+1$ 号点,若 $n+1$ 号点被覆盖则不合法。

考虑对于所有方案计算 $n+1$ 号点被覆盖的概率,注意到任意一种覆盖情况都可以通过同一个置换达到 $n+1$ 种情况,则可称其为一个等价类,而等价类集合包含所有元素且不交,所以一个点被覆盖的概率等于在一个等价类中被覆盖的概率,即 $\frac{m}{n+1}$,所以合法概率即 $n+1$ 号点不被覆盖的概率,即 $\frac{n+1-m}{n+1}$,而总方案数为 $(2 \times (n+1))^m$,所以答案为 $(2 \times (n+1))^m \times \frac{n+1-m}{n+1}$。

 

CF1874D Jellyfish and Miku

题目传送门

设 $f_i$ 表示 $i$ 到 $n$ 的期望步数(用时),有

$f_i = \begin{cases} f_1 + 1 & i = 0 \\ \frac{a_i}{a_i + a_{i + 1}} f_{i - 1} + \frac{a_{i + 1}}{a_i + a_{i + 1}} f_{i + 1} + 1 & 0 < i < n \\ 0 & i = n \end{cases}$

记 $g_i = f_{i - 1} - f_{i}$,则有

$\begin{aligned} f_i & = \frac{a_i}{a_i + a_{i + 1}} f_{i - 1} + \frac{a_{i + 1}}{a_i + a_{i + 1}} f_{i + 1} + 1 \\ (a_i + a_{i + 1}) f_i & = a_i f_{i - 1} + a_{i + 1} f_{i + 1} + a_i + a_{i + 1} \\ a_{i + 1} (f_i - f_{i + 1}) & = a_i (f_{i - 1} - f_i) + a_i + a_{i + 1} \\ a_{i + 1} g_{i + 1} & = a_i g_i + a_i + a_{i + 1} \end{aligned}$

且 $g_1 = 1$

记 $h_i = a_i g_i$,则有

$h_i = h_{i - 1} + a_i + a_{i - 1}, h_1 = a_1$

可得 $h_i = a_i + 2 \sum\limits_{j < i} a_j$,即 $g_i = \frac{a_i + 2 \sum\limits_{j < i} a_j}{a_i} = \frac{2 \sum\limits_{j < i} a_j}{a_i} + 1$

我们要求即为

$\begin{aligned} f_0 & = \sum\limits_{i = 1}^n {g_i} \\ & = n + 2 \sum\limits_{i = 1}^n \frac{1}{a_i} \sum\limits_{j < i} {a_j} \end{aligned}$

的最小值

设 $f_{x, y}$ 表示前 $x$ 个数,$\sum\limits_{i = 1}^x a_i = y$ 的 $\sum\limits_{i = 1}^x \frac{1}{a_i} \sum\limits_{j < i} {a_j}$ 的最小值。

则有 $f_{i, j} = \min\limits_{k = 1}^{j - i + 1} (f_{i - 1, j - k} + \frac{j}{k} - 1)$

直接转移是 $O(nm^2)$ 的。

性质1:最优情况的 $a$ 序列单调不降。

证明:考虑相邻两个位置 $a_i$ 和 $a_{i + 1}$,记 $s_i = \sum\limits_{j = 1}^i a_i$,则有这两个位置的贡献总和为 $\frac{s_i}{a_i} + \frac{s_i}{a_{i + 1}} - 1$,考虑若交换 $a_i, a_{i + 1}$ 所贡献位置,则有贡献总和为 $\frac{s_i}{a_i} + \frac{s_i}{a_{i + 1}} - 1 + \frac{a_{i + 1}}{a_i} - \frac{a_i}{a_{i + 1}}$,即当 $\frac{a_{i + 1}}{a_i} - \frac{a_i}{a_{i + 1}} < 0$ 时更优,得到当 $a_i > a_{i + 1}$ 时交换更优,即 $a$ 序列单调不降时最优。

此时考虑转移式中枚举的 $k$ 有限制 $j + k (n - i) \le m$,所以时间复杂度 $O(m^2 \log{n})$。

posted @ 2023-12-20 11:26  ORzyzRO  阅读(20)  评论(0)    收藏  举报