《生成树计数》
题目大意
n ≤ 30000 n\le30000 n≤30000 个块分别含 a i a_i ai 个点,度数 d i d_i di 造成权值 v a l ( d ) = ( ∏ i = 1 n d i m ) ( ∑ i = 1 n d i m ) val(d) = (\prod_{i=1}^n d_i^m ) (\sum_{i=1}^n d_i^m) val(d)=(∏i=1ndim)(∑i=1ndim)。求所有生成树的权值和。
套路一
先不考虑后面那个 ∑ \sum ∑,那么可以表示为若干个 w ( d i ) = d i m w(d_i)=d_i^m w(di)=dim 的积。
用 egf 分配 prufer 序列的位置,若第 i i i 个块分到 c i c_i ci 个位置,那么其度数为 d i = c i + 1 d_i=c_i+1 di=ci+1。并且要为每个度数决定连接哪个点,即 a i c i + 1 a_i^{c_i+1} aici+1。
( ∏ a i ) ∑ ∑ c i = n − 2 ( n − 2 ) ! ∏ c i ! ∏ a i c i w ( c i + 1 ) (\prod a_i)\sum_{\sum c_i=n-2}\frac{(n-2)!}{\prod c_i!}\prod a_i^{c_i}w(c_i+1) (∏ai)∑ci=n−2∑∏ci!(n−2)!∏aiciw(ci+1)
这里把公因子 ( ∏ a i ) (\prod a_i) (∏ai) 提到了前面。 ( n − 2 ) ! ∏ c i ! \frac{(n-2)!}{\prod c_i!} ∏ci!(n−2)! 是分配位置,用 egf 搞掉。
那么块 i i i 的 egf F i ( x ) = ∑ x k k ! a i k w ( k + 1 ) F_i(x) = \sum\frac{x^k}{k!} a_i^k w(k+1) Fi(x)=∑k!xkaikw(k+1) 【不要漏写+1】
可以发现如果设 F ( x ) = ∑ x k k ! w ( k + 1 ) F(x) = \sum\frac{x^k}{k!} w(k+1) F(x)=∑k!