Loading

LOJ #6044 题解

LOJ #6044

显然就是要求有多少左边有 \(K\) 个点,右边有 \(N-K\) 个点的完全二分图的生成树个数,但是我不会!

所以我们想一想怎么算左边 \(n\) 个点,右边 \(m\) 个点的完全二分图的生成树个数。

神秘公式

\[K_{n_1,n_2,\cdots,n_k}=p^{k-2}\prod_{i=1}^k(p-n_i)^{n_i-1}\qquad\text{where }p=\sum_{i=1}^kn_i \]

然后我们要的是 \(K_{n,m}=n^{m-1}m^{n-1}\)。然后就做完了。

但是证明这个公式要用矩阵树定理,我不会

不失一般性地,我们假设 \(n\ge m\),并且左边的点比右边的点编号更小,然后尝试 Prufer 序列。

显然,在构造 Prufer 序列时,会删除 \(n-1\) 个左部点和 \(m-1\) 个右部点,因为最终剩下来的两个点之间有边,一定属于不同的部分。

所以,Prufer 序列中有 \(m-1\) 个左部点和 \(n-1\) 个右部点。

假设已经有了一棵树,显然左边一定会有叶子,我们先把它们删除,在这个过程中显然不会产生新的属于左边的叶子。对应到 Prufer 序列中,就是新加入了一些右部点。

然后我们将右边的叶子删除,此时也不会产生新的右边的叶子。对应到 Prufer 序列中就是新加入了一些左部点。

从 Prufer 序列中抽出左部点构成的长度为 \(m-1\) 的子序列,它有 \(n^{m-1}\) 种赋值方式。同样将右部点的子序列赋值。

根据 Prufer 序列的性质,我们已经可以确定每个点的度数。

于是一开始新加入的右部点数量是固定的。而我们已经对序列赋值,所以可以随时计算每一个点的度数。这样,加入左部点的数量也是固定的。

所以,只需要确定两个子序列的值,就可以唯一确定整个 Prufer 序列。

于是我们证明了 \(K_{n,m}=n^{m-1}m^{n-1}\)

注意原题并没有提及标号,所以答案是 \(\binom{n-1}{k-1}K_{k,n-k}\)

posted @ 2022-11-25 11:07  hihihi198  阅读(30)  评论(0)    收藏  举报