一些 GF
如题。
Figures
- ARC106 F
给你 \(n\) 个球,第 \(i\) 个球上有 \(d_i\) 个孔,孔之间有区别。
你需要用 \(n-1\) 个绳子把这 \(n\) 个球连成一棵树,每个绳子两头分别连接两个孔,每个孔最多被一根绳子连接。
对如上限制下可以连出的树计数,答案对 \(998244353\) 取模。
\(2 \leq n \leq 2 \times 10^5,1 \leq d_i < 998244353\)
先钦定编号为 \(i\) 的点最终的度数为 \(a_i\),对 prüfer 序列计数,此时答案为:
\[\sum_{{\sum a_i = 2(n-1)}} \binom{n-2}{a_1-1,a_2-1,\dots ,a_n-1} = \sum_{{\sum a_i = 2(n-1)}} \frac{\left ( n-2 \right )! }{ {\textstyle \prod_{i=1}^{n}}(a_i-1)! }
\]
接下来加入每个点度数最高为 \(d_i\) 的限制,由于我们区分每个孔连接的顺序,答案为:
\[\sum_{{\sum a_i = 2(n-1)},a_i \leq d_i } \frac{\left ( n-2 \right )! }{ {\textstyle \prod_{i=1}^{n}}(a_i-1)! } \times \prod_{i=1}^{n} A_{d_i}^{a_i}=
\sum_{{\sum a_i = 2(n-1)},a_i \leq d_i } \frac{\left ( n-2 \right )! }{ {\textstyle \prod_{i=1}^{n}}(a_i-1)! } \times \prod_{i=1}^{n} d_i^{\underline{a_i}}\]
由于 $ {\textstyle \sum_{i=1}^{n} a_i = 2(n-1)} $,考虑使用 GF。
把 \((n-2)!\) 提出来,再设 \(F_i(x)\) 是点 \(i\) 对应的生成函数,有:
\[F_i(x)=\sum_{k=1}^{+\infty } \frac{d_i^{\underline{k}}}{(k-1)!} x^k
\]
\[=\sum_{k=1}^{+\infty } \frac{d_i!}{(k-1)! (d_i-k)!} x^k
\]
\[=\sum_{k=1}^{+\infty } d_i \cdot \binom{d_i-1}{k-1} x^k
\]
\[=d_i \cdot x\sum_{k=1}^{+\infty } \binom{d_i-1}{k-1} x^{k-1}
\]
\[=d_i \cdot x\sum_{k=0}^{+\infty } \binom{d_i-1}{k} x^{k}
\]
\[=d_i \cdot x(x+1)^{d_i-1}
\]
那么答案的生成函数为:
\[G(x)=\prod_{i=1}^{n} F_i(x) = \prod_{i=1}^{n} d_i \cdot x(x+1)^{d_i-1}
\]
\[=\prod_{i=1}^{n} d_i \cdot x^n(x+1)^{\sum (d_j-1)}
\]
最终答案为:
\[(n-2)! \cdot \left [ x^{2(n-1)} \right ] \prod_{i=1}^{n} d_i \cdot x^n(x+1)^{\sum (d_j-1)}
\]
\[=(n-2)! \prod_{i=1}^{n} d_i \cdot \left [ x^{n-2} \right ] (x+1)^{\sum (d_j-1)}
\]
\[=(n-2)! \prod_{i=1}^{n} d_i \cdot \binom{\sum (d_j-1)}{n-2}
\]
\[=\prod_{i=1}^{n} d_i (\sum (d_j-1))^{\underline{n-2}} = \prod_{i=1}^{n} d_i \times \prod_{i=0}^{n-3} \left ( \left ( {\textstyle \sum_{j=1}^{n} d_j} \right) -n-i \right )
\]
不难 \(O(n)\) 计算。

浙公网安备 33010602011771号