No.1302 Random Tree Score - yukicoder
問題
$N$ 頂点ラベル付き木で、頂点 $v$ の次数が $d_v$ であるような木のスコアを $\prod_{v} d_v$ と定める。
$N$ 頂点ラベル付き木は全部で $N^{N-2}$ 個あるが、それらのスコアの平均値 $\pmod{998,244,353}$ を求めよ
制約
- $2 \leq N \leq 10^5$
考察
まず頂点 $v$ の次数が $d_v$ であるような $N$ 頂点ラベル付き木の個数は、以下で表される。
$$ (N-2)! \prod_v \frac{1}{(d_v - 1)!} $$
これは「Prüfer コード」を使うと求められる (参考記事)。 ということで、スコアの平均は以下の式で求まる。
$$ \frac{(N-2)!}{N^{N-2}} \sum_{(d_v): \sum_v d_v = 2(N-1)} \prod_v \frac{d_v}{(d_v - 1)!} $$
$\frac{(N-2)!}{N^{N-2}}$ は最後に掛けることにして、以降は以下の値をどう計算するか考える。
$$ \sum_{(d_v): \sum_v d_v = 2(N-1)} \prod_v \frac{d_v}{(d_v - 1)!} $$
まずこの値は、 $f(x) = \sum_{k=1}^{\infty} \frac{k}{(k - 1)!}x^k$ という形式的冪級数によって $[x^{2(N-1)}]f^N(x)$ と表せる。 さらにこの $f(x)$ は、 $F(x) = xe^x = \sum_{k=1}^{\infty} \frac{x^k}{(k-1)!}$ によって $f(x) = xF’(x) = x(1 + x)e^x$ と表せる。
よって $[x^{2(N-1)}]f^N(x) = [x^{2(N-1)}] x^N (1+x)^N e^{Nx} = [x^{N-2}] (1+x)^N e^{Nx}$ と変形できる。後は
$$ \begin{align} (1+x)^N &= \sum_{k=0}^{N} \binom{N}{k} x^k \\ e^{Nx} &= \sum_{k=0}^{\infty} \frac{N^k}{k!} x^k \end{align} $$
を使えば値が求まる。
実装例
#586123 (C++17) No.1302 Random Tree Score - yukicoder
|
|