我承认,标题有些谜语人。主要是怕搜索引擎乱抓导致黑历史暴露。
众所周知 (n) 个点的无根有标号树有 (n^{n - 2})。
众所周知这个结论的证法很多,其中一个是使用拉格朗日反演。
设有标号有根树的 EGF 为 (T(x)),有方程 (T = x(sum_{igeq 0} frac{T^i}{i!}) = xexp T)。
设 (G(x) = x /exp x),则 (G(T) = x),即 (G) 是 (T) 的复合逆。
由反演,([x^n]T = [x^n]x(x/G)^{n + 1}G' = n^{n-1}/n!)。
得到有根树为 (n^{n - 1}),则无根树为 (n^{n - 2})。
众所周知将 (m) 个大小为 (a_1, dots, a_m) 的树连成一个 (n) 个点无根树的方案数为 (n^{m - 2}prod a_i)。
众所周知这个结论的证法很多,其中一个是使用扩展拉格朗日反演。
下尝试用扩展拉格朗日反演证一下这个结论 当然是不会去证扩展拉格朗日反演的。
实际上众所周知,扩展拉格朗日反演与 prufer 序列和矩阵树定理关系都非常密切,所以三种证法本质等价(瞎说)。
首先给出一些记号。
下将 (G(x_1, x_2, dots, x_m)) 简记成 (G(mathrm x))。
下将 (x_1^{k_1}x_2^{k_2}dots x_{m}^{k_m}) 简记成 (mathrm x^{mathrm k})。
在多元 GF 下复合逆这一概念并不良定义。因此,取而代之的,我们定义一组树形复合方程:
[F_1 = x_1G_1(F_1, F_2, dots, F_m) = x_1G_1(mathrm F) \
F_2 = x_2G_2(F_1, F_2, dots, F_m) = x_2G_2(mathrm F) \
dots \
F_m = x_mG_m(F_1, F_2, dots, F_m) = x_mG_m(mathrm F) \
]
树形复合方程确实和树有关系。
具体来说,我们所考虑的对象是有 (m) 种结点的有根树。则 (F_i) 可以看成以第 (i) 种结点为根时对应的有根树。
下当 (A = (a_{i,j})) 时将 (det A) 记成 (left|left|a_{i, j}
ight|
ight|)。
给出定理:
[[mathrm x^{mathrm k}]H(mathrm F) = [mathrm x^{mathrm k}]H(mathrm x) imes mathrm G^{mathrm k} imes left|left|[i = j] - frac{x_jfrac{part G_i}{part x_j}}{G_i(mathrm x)}
ight|
ight|
]
注意字体与其代表的含义,比如 (mathrm G^{mathrm k}) 实际上是 (G_1^{k_1}G_2^{k_2}dots G_{m}^{k_m})。
现在来证明,首先转化成算有根树除以 (m)。
记 (F_i) 表示以第 (i) 种点为根的 EGF,此时一条边会产生两端 (a) 乘积的贡献,因此得到方程:
[F_i = x_iexpleft(sum_{j = 1}^m a_ia_jF_j
ight)
]
也即 (G_i = exp(sum_{j = 1}^m a_ia_jx_j))。
最后每种点仅出现一次,那么取 ([mathrm x](sum_{i = 1}^m F_i)) 即为答案。使用反演:
[egin{aligned}[]
[mathrm x]left(sum_{i = 1}^mF_i
ight) &= [mathrm x]left(sum_{i = 1}^mx_i
ight) imes left(prod_{i = 1}^mexpleft(sum_{j = 1}^m a_ia_jx_j
ight)
ight) imes left|left|[i = j] - frac{x_ja_ia_jexp(sum_{j = 1}^m a_ia_jx_j)}{exp(sum_{j = 1}^m a_ia_jx_j)}
ight|
ight| \
&= [mathrm x]left(sum_{i = 1}^mx_i
ight) imes exp left(sum_{i = 1}^{m}sum_{j = 1}^{m}a_ia_jx_j
ight) imes left|left|[i = j] - a_ia_jx_j
ight|
ight|
end{aligned}
]
搞一搞行列式:
[egin{aligned}
egin{vmatrix}
1-a_1^2x_1 & -a_1a_2x_2 & dots & -a_1a_nx_n \
-a_2a_1x_1 & 1-a_2^2x_2 & dots & -a_2a_nx_n \
vdots & vdots & ddots & vdots \
-a_na_1x_1 & -a_na_2x_2 & dots & 1-a_n^2x_n \
end{vmatrix}
=
egin{vmatrix}
1-a_1^2x_1 & -a_1a_2x_2 & dots & -a_1a_nx_n \
-a_2/a_1 & 1 & dots & 0 \
vdots & vdots & ddots & vdots \
-a_n/a_1 & 0 & dots & 1 \
end{vmatrix}
=
egin{vmatrix}
1-sum_{i = 1}^{m}a_i^2x_i & -a_1a_2x_2 & dots & -a_1a_nx_n \
0 & 1 & dots & 0 \
vdots & vdots & ddots & vdots \
0 & 0 & dots & 1 \
end{vmatrix}
end{aligned}
]
将结果 (1 - sum_{i = 1}^m a_i^2x_i) 再代回去:
[egin{aligned}[]
[mathrm x]left(sum_{i = 1}^mx_i
ight) imes left(prod_{j = 1}^mexpleft(na_jx_j
ight)
ight) imes left(1 - sum_{i = 1}^m a_i^2x_i
ight)
end{aligned}
]
如果最后一项取 (1),则得到 (n^{m - 1}(prod_{i = 1}^m a_i)(sum_{i = 1}^m1/a_i))。
否则,得到 (-n^{m - 2}(prod_{i = 1}^m a_i)(sum_{i = 1}^msum_{j = 1,j
eq i}^ma_j/a_i) = -n^{m - 2}(prod_{i = 1}^m a_i)(sum_{i=1}^{m}n/a_i - m))。
因此得到最终结果 (mn^{m - 2}(prod_{i = 1}^m a_i))。
别忘了除以 (m),得到形式 (n^{m - 2}(prod_{i = 1}^m a_i)),证完了。
这还要搞行列式,和矩阵树定理没啥差别啊。