抛开挂分不谈

这场模拟赛真是太幽默了哈哈哈

Stage 1

不难注意到 \(f_n=\dfrac{1}{\binom{n+m}{m}}\)

但是上述做法细节太多,尤其容易将 \(\binom{n+m}{m}\) 写成 \(\binom{n+m}{n}\) 导致 TLE 挂分。

所以我们应当参考题解学习高级做法。

首先不难发现, 记 \(g_{i}=\dfrac{f_{i}}{m}\), 那么

\[\left\{\begin{array}{c} g_{0}=0 \tag{3}\\ g_{i}=\frac{i}{m+i} g_{i-1}+\frac{1}{m+i} \quad(i \geq 1) \end{array}\right. \]

求出 \(g_{n}\) 即可。

把下面的式子换个形式:

\[\begin{equation*} (m+i) g_{i}=i g_{i-1}+1 \tag{4} \end{equation*} \]

\[\begin{equation*} y=\sum_{i \geq 0} g_{i} x^{i}=\sum_{i \geq 1} g_{i} x^{i} \tag{5} \end{equation*} \]

那么:

\[\begin{gather*} \sum_{i \geq 1}(m+i) g_{i} x^{i}=\sum_{i \geq 1}\left(i g_{i-1}+1\right) x^{i} \\ m y+x \sum_{i \geq 1} i g_{i} x^{i-1}=\sum_{i \geq 1} x^{i}+x^{2} \sum_{i \geq 1}(i-1) g_{i-1} x^{i-2}+x >\sum_{i \geq 1} g_{i-1} x^{i-1} \tag{6}\\ m y+x y^{\prime}=\frac{x}{1-x}+x^{2} y^{\prime}+x y \end{gather*} \]

整理:

\[\begin{equation*} y^{\prime}+\frac{m-x}{x-x^{2}} y=\frac{1}{(1-x)^{2}} \tag{7} \end{equation*} \]

发现这是一阶线性微分方程的形式。

\(P(x)=\frac{m-x}{x-x^{2}}, Q(x)=\frac{1}{(1-x)^{2}}\)

那么根据常数变易法, 有:

\[\begin{equation*} y=\exp \left(-\int P(x) d x\right) \cdot \int Q(x) \exp \left(\int P(x) d x\right) d x \tag{8} \end{equation*} \]

\(P(x)\) 是有理函数:

\[\begin{equation*} \int P(x) d x=\int\left(\frac{m}{x}+\frac{m-1}{1-x}\right) d x=m \ln x-(m-1) \ln (1-x)+C_{1} \tag{9} \end{equation*} \]

这里认为 \(x \in(0,1)\)

\[\begin{gather*} \exp \left(\int P(x) d x\right)=C_{1} x^{m}(1-x)^{1-m} \\ \int Q(x) \exp \left(\int P(x) d x\right) d x=\int \frac{1}{(1-x)^{2}} \cdot C_{1} x^{m}(1-x)^{1-m} d x >\tag{10}\\ =C_{1} \int x^{m}(1-x)^{-m-1} d x \end{gather*} \]

用级数积分(事实上, 原微分方程是非初等的)

根据牛顿二项式定理,有:

\[x^{m}(1-x)^{-m-1}=\sum_{i \geq 0}\left(\begin{array}{c} m+i \tag{11}\\ m \end{array}\right) x^{m+i} \]

那么

\[\begin{gather*} \int Q(x) \exp \left(\int P(x) d x\right) d x=C_{1} \int x^{m}(1-x)^{-m-1} \\ =C_{1}\left(C_{2}+\sum_{i \geq 0}\left(\begin{array}{c} m+i \\ i \end{array}\right) \frac{x^{m+i+1}}{m+i+1}\right) \tag{12}\\ =C_{1}+C_{2} \sum_{i \geq 0}\left(\begin{array}{c} m+i \\ i \end{array}\right) \frac{x^{m+i+1}}{m+i+1} \end{gather*} \]

所以

\[\begin{array}{r} y=C_{3}(1-x)^{m-1} x^{-m}\left(C_{1}+C_{2} \sum_{i \geq 0}\left(\begin{array}{c} m+i \\ i \end{array}\right) \frac{x^{m+i+1}}{m+i+1}\right) \tag{13}\\ =C_{3}(1-x)^{m-1} x^{-m}+C_{2}(1-x)^{m-1} \sum_{i \geq 0}\left(\begin{array}{c} m+i \\ i \end{array}\right) \frac{x^{i+1}}{m+i+1} \end{array} \]

为了适合初始条件 \(\left.y\right|_{x=0}=0,\left[x^{1}\right] y=\frac{1}{m+1}, C_{3}=0, C_{2}=1\)

那么:

\[\begin{gather*} y=(1-x)^{m-1} \sum_{i \geq 0}\left(\begin{array}{c} m+i \\ i \end{array}\right) \frac{x^{i+1}}{i+m+1} \\ =\sum_{j}(-1)^{j}\left(\begin{array}{c} m-1 \\ j \end{array}\right) \sum_{i \geq 0}\left(\begin{array}{c} m+i \\ i \end{array}\right) \frac{x^{i+j+1}}{i+m+1} \tag{14}\\ =\sum_{n} x^{n} \sum_{j}\left(\begin{array}{c} m-1 \\ j \end{array}\right)\left(\begin{array}{c} n+m-j-1 \\ m \end{array}\right) \frac{(-1)^{j}}{n+m-j} \end{gather*} \]

所以

\[g_{n}=\sum_{j}\left(\begin{array}{c} m-1 \tag{15}\\ j \end{array}\right)\left(\begin{array}{c} n+m-j-1 \\ m \end{array}\right) \frac{(-1)^{j}}{n+m-j} \]

\(O(m \log m)\) 计算即可。时间复杂度 \(O(T m \log m)\)

看这个形式不知道有没有组合意义的理解。

真是太巧妙了!!!虽然比我原来做法复杂度劣一点,但是真是简单太多了。

Stage 2

T2。只会 \(O(n^2k)\) 怎么办?什么?你说 \(n\le2000,k\le10\)?肯定是数据问题有问题,还是看题解吧!

题解

直接做非常难做, 但你不难发现, 长度为 \(n\) 的序列, 可以理解为 \(n+2\) 个点的树对应的 prufer 序列!

进一步, prufer 序列出现次数加 1 就是树上对应的点的度数。

又由于只有 \(n+1\) 个值, 因此等于钦定标号为 \(n+2\) 的点度数为 1 。那我们不妨将它作为根。

然后就可以动态规划了。

\(f_{x}\) 表示大小为 \(x\) 的有根树的方案数。

\(g_{d, x}\) 表示 \(d\) 个有根树, 且大小总和为 \(x\) 的方案数。

转移是简单的:

\(f_{x}=\sum_{d=1}^{k} g_{d, x-1} \times x\)

\(g_{d, x}=\sum_{y=1}^{x} g_{d-1, x-y} \times f_{y} \times\left(\begin{array}{l}x-1 \\ y-1\end{array}\right)\)

对于 \(n\), 答案就是 \(f_{n+1}\)

组题人注:

可以做到更优的复杂度。这是供题人的原文:

利用全在线卷积优化,可以很轻松做到 \(O\left(n k \log ^{2} n\right)\)

生成函数(指多项式求逆)下,复杂度 \(O(n k \log n)\)

但是由于写 std 的人不知道如何多项式求逆优化到 \(O(n k \log n)\), 而全在线卷积套上去意义不大, 所以就成了 \(O\left(n^{2} k\right)\)

真是太巧妙了,这么难做的提为什么想不到图论!鞭策自己!

Conclusion

pig 给 dash 开门——抽象到机房了!

posted @ 2024-02-22 14:45  yinhee  阅读(73)  评论(1)    收藏  举报