Prüfer编码与Cayley公式学习小记

传送门:顾森大爷的博客.

Prüfer编码:

一棵有编号的树如何用一个序列表示?Prüfer编码出奇迹。

如何构序列:

一共有n-2次操作:
找到当前叶子节点中编号最小的那个点x,输出与x相邻的点,删掉x。

根据序列求树:

由于没有出现在序列里的序号恰好是是叶子节点,所以每次找到每次找到序号最小的叶子节点,与序列的对应项形成一条边,把这个叶子删掉,继续考虑即可。

*一棵树对应唯一一个Prüfer编码,一个Prüfer编码也对应唯一一棵树。

Cayley公式:

n个点的完全图的生成树个数个数是 nn2 n n − 2

因为一个Prüfer编码对应一棵树,而点数为n的Prüfer编码长度是n-2,每个位置有n种可能,所以为 nn2 n n − 2

推导:
设编号为i的点的度数是 di d i ,则树的个数是 (n2)!(di1) ( n − 2 ) ! ∏ ( d i − 1 ) ! ,这相当于有重复元素的排列问题。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值