LOJ #6044 题解

LOJ #6044

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

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

神秘公式

Kn1,n2,,nk=pk2i=1k(pni)ni1where p=i=1kni

然后我们要的是 Kn,m=nm1mn1。然后就做完了。

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

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

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

所以,Prufer 序列中有 m1 个左部点和 n1 个右部点。

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

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

从 Prufer 序列中抽出左部点构成的长度为 m1 的子序列,它有 nm1 种赋值方式。同样将右部点的子序列赋值。

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

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

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

于是我们证明了 Kn,m=nm1mn1

注意原题并没有提及标号,所以答案是 (n1k1)Kk,nk

posted @   hihihi198  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
主题色彩