题解 CF1349F2 【Slime and Sequences (Hard Version)】

Elegia

2020-05-18 18:21:18

Solution

我们将暴力计算出二元生成函数 $\widehat F(z, t) = \sum_{n\ge 1}\sum_{k=1}^n A_{n,k}\frac{z^nt^k}{n!}$, 其中 $A_{n,k}$ 是所有 $n$ 长度的序列中 $k$ 出现次数的和. 考虑容斥原理. 对于 $\max k = m$ 的序列, 我们有 $$ \sum_{j=1}^m \sum_{S \subseteq \{1, 2, \cdots m-1\}} (-1)^{|S|} Q(S, z, t, j) $$ 这个意思是说对于所有 $i \in S$, 我们强制让所有 $i$ 出现在 $i + 1$ 之前, 统计 $j$ 的出现次数之和 我们考虑改进枚举顺序,由于每个强制要求就将连续几个 $k$ 的关系“绑定”在一起,我们反过来枚举这个强制要求的产生,那么我们可以认为一连串的 $k$ 就组成了一个“基本单元”。而接下来我们还要枚举我们所需要统计的各个 $k$ 出现的次数和,贡献到 $t^k$ 上面。因此这个组合结构的统计可以被认为是对枚举如下结构计算代数和: > $$ \overbrace{\left.\bigcirc {\color{blue}(\cdot t)} \frac{\tiny \color{red} -1}{}\bigcirc {\color{blue}(\cdot t)} \frac{\tiny \color{red} -1}{} \cdots \frac{\tiny \color{red} -1}{} \bigcirc {\color{blue}(\cdot t)} \middle\vert \cdots \middle\vert \bigcirc {\color{blue}(\cdot t)} \frac{\tiny \color{red} -1}{}\cdots \frac{\tiny \color{red} -1}{} {\color{green}\bigcirc} {\color{blue}(\cdot t)}{\color{green}(\cdot \mathrm{Len})} \right.}^{\mathrm{with} {\color{blue}(\cdot t)}} \left. \frac{\tiny \color{red} -1}{} \cdots \frac{\tiny \color{red} -1}{} \bigcirc \middle\vert \cdots \middle\vert \bigcirc \frac{\tiny \color{red} -1}{}\bigcirc \frac{\tiny \color{red} -1}{} \cdots \frac{\tiny \color{red} -1}{} \bigcirc \right. $$ > 其中 $\bigcirc$ 是一个非空同色列,而 $-$ 表示两个颜色之间的出现位置关系被严格限制, $|$ 表示之间没有限制。 对于隔板中间的过程,易于用 OGF 表示,最后混合颜色的过程,易于用 EGF 表示。 主要的 OGF 分成三个部分,第一个阶段是采集了 $t$ 的部分,第二个阶段是采集了 $t$ 的一个终止段,且在终止位置统计了某个颜色的出现次数,第三个阶段是不采集 $t$ 的部分。 我们分别算出三个阶段: 第一阶段: $$ \begin{aligned} L(z,t) &=\frac{-1}{1+\frac z{1-z}t} + 1 \\ &= \frac{t z}{1-(1-t) z}\\ &= \sum_{k\ge 0} z^{k+1} t(1-z)^k\\ \widehat L(z,t) &= \frac t{1-t}\sum_{k\ge 0} \frac{z^{k+1}}{(k+1)!} (1-t)^{k+1}\\ &= \frac t{1-t} (\mathrm e^ {z(1-t)} - 1) \end{aligned} $$ 第二阶段: $$ \begin{aligned} U(z,t) &= \frac1{1+\frac z{1-z}t} \frac {zt}{(1-z)^2} \frac1{1+\frac z{1-z}}\\ &= \frac{tz}{1-(1-t)z} = L(z,t)\\ \widehat U(z,t)&= \widehat L(z,t) \end{aligned} $$ 第三阶段直接有 $L(z, 1) = z = \widehat L(z, 1)$。 因此,答案的 EGF 就是 $$ \frac1{1-\widehat L(z,t)} \widehat U(z, t) \frac 1{1 - \widehat L(z, 1)} $$ 经过一番化简, 我们就得到了 $\frac{t(\mathrm e^{z(1-t)}-1)}{(1-z) (1-t \mathrm e^{z(1-t)})}$. 我们现在要计算 $$ [z^n]\frac{t(\mathrm e^{z(1-t)}-1)}{(1-z) (1-t \mathrm e^{z(1-t)})} $$ 考虑 $\left([z^n]\frac{t(\mathrm e^{z(1-t)}-1)}{(1-z) (1-t \mathrm e^{z(1-t)})}\right) + 1 = (1-t)[z^n] \frac 1{(1-z)(1-t\mathrm e^{z(1-t)})}$, 用于简化表达式. 接下来我们令 $z = \frac u{1-t}$, 就有 $$ [z^n]\frac 1{(1-z)(1-t\mathrm e^{z(1-t)})} = (1-t)^n[u^n] \frac1{(1-\frac u{1-t})(1-t\mathrm{e}^u)} $$ 这一步的好处在于我们消去了上指标的一个变量, 方便我们接下来做分式分解 $$ \begin{aligned} (1-t)[z^n] \frac 1{(1-z)(1-t\mathrm e^{z(1-t)})} &= [u^n]\frac{(1-t)^{n+2}}{(1-\frac{t}{1-u})(1-t\mathrm e^u)(1-u)}\\&= (1-t)^{n+2} [u^n] \left(\frac{-\mathrm e^u}{\left(\mathrm e^u u-\mathrm e^u+1\right) \left(1-t \mathrm e^u\right)}+\frac{\frac{1}{1-u}}{\left(\mathrm e^u u-\mathrm e^u+1\right) (1-\frac{t}{1-u})}\right)\end{aligned} $$ 主要是前面的 exp 部分,由于 $[u^m]\mathrm{e}^{ku} = \frac{k^m}{m!}$, 可以多点求值做到 $\Theta(n\log^2 n)$. 如果你常数不大, 可以通过. 当然也可以优化到 $\Theta(n\log n)$ 通过拉格朗日反演, 和 xtq 的做法类似, 留作习题.