既然有人提到了,就顺便学习一下吧,来源:http://greatkongxin.blog.163.com/blog/static/170097125201172483025666/


一个含有n个点的完全图,有n^(n-2)种不同的生成树


prufer编码是用另外一种形式来描述一棵树,这棵树是无根树,它可以和无根树之间形成一一对应关系。
 编码方式是:

这是一颗无根树,这课树的prufer编码为5,5,4,4,4,6。

首先选这棵树叶子中编号最小的点,将这个点删除,并且把它的邻接点加入一个数组中,例如第一个删除的节点为1,并且把5加入数组中。删除节点后形成一棵新的树,再在新树中删除最小的节点,并且把邻接点加入数组中,,这样重复以上步骤,知道树中最后剩余两个点的时候终止操作。这时候数组中的便是prufer编码。

由prufer编码来重建这棵树的方法是:

假如prufer编码为(a1,a2,a3,a4,a5,.....an-2)在上述数组中,在数组最后加入n这个值,这样便形成了数组中包含n-1个节点,例如上述为5,5,4,4,4,6,8。

然后取不在数组中的最小值为b1,则b1与a1是邻接点,在数组中删除a1,再在剩下的数中选取不为b1,且不在数组中的最小值为b2,则b2与a2是邻接点,这样依次循环下去直到结束,这样便形成了一棵树。

Cayley定理:不同的n节点标号树的数量为n^(n-2)。

转载于:https://www.cnblogs.com/zhyfzy/p/4143946.html

【转】prufer编码相关推荐

  1. 遗传算法应用(实例详细演示最小生成树的prufer编码和Cayley定理)

    prufer编码:用n-2位自然数唯一的表达出一棵n个节点的生成树.而且两者相互可逆,即给定一颗生成树的连接方式,可以唯一确定这棵树的编码. Cayley定理:n个顶点的完全图中有nn−2n^{n-2 ...

  2. 【CodeForces - 289D】Polo the Penguin and Houses (带标号的无根树,Cayley定理,Prufer编码)

    题干: Little penguin Polo loves his home village. The village has n houses, indexed by integers from 1 ...

  3. 树的Prufer 编码和最小生成树计数

    Prufer数列 Prufer数列是无根树的一种数列.在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2.它可以通过简单的迭代方法计 ...

  4. 树的计数 Prüfer编码与Cayley公式 学习笔记

    最近学习了Prüfer编码与Cayley公式,这两个强力的工具一般用于解决树的计数问题.现在博主只能学到浅层的内容,只会用不会证明. 推荐博客:https://blog.csdn.net/moreja ...

  5. 【BZOJ 1005】[HNOI2008]明明的烦恼 【Prufer序列】

    (1) 树的prufer编码的实现[1] 不断删除树中度数为1的最小序号的点,并输出与其相连的节点的序号直至树中只有两个节点 对应的prufer序列就是3,5,1,3. Data.in 6 5 1 3 ...

  6. bzoj 1211 [HNOI2004]树的计数

    [HNOI2004]树的计数 Description 一个有n个结点的树,设它的结点分别为v1, v2, -, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, ...

  7. BZOJ-1005 明明的烦恼

    Prufer编码练习题,这个编码是跟树的生成计数有关系的. 推荐这篇博文:http://www.cnblogs.com/zhj5chengfeng/archive/2013/08/23/3278557 ...

  8. HNOI模拟 Day3.22

    第一题: 盾盾的打字机 (drdrd)  [题目描述]  盾盾有一个非常有意思的打字机,现在盾哥要用这台打字机来打出一段文章.  由于有了上次的经验,盾盾预先准备好了一段模板 A 存在了内存中,并以此 ...

  9. BZOJ 1005: [HNOI2008]明明的烦恼

    BZOJ 1005: [HNOI2008]明明的烦恼 Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在 任意两点间连线 ...

最新文章

  1. 关于object references an unsaved transient instance - save the transient instance before flushing的解决方法
  2. python 连接数据库对中文读取超过_python 处理中文 读取数据库输出全是问号
  3. V3S代码整合中遇到的一个奇怪问题
  4. 区块链预言机(2)预言机概念
  5. 如何在SAP Spartacus里监控用户浏览了某产品明细页面的动作
  6. C语言头文件 “ 细节 ”
  7. 面型对象 (接口与类的区别)
  8. docker php composer 使用_如何使用Docker部署PHP开发环境
  9. 《Head First 设计模式》专题上线
  10. UltraEdit(UE)如何设置去掉.bak备份文件?
  11. HTML页面嵌入视频无法播放的常见原因
  12. 热带地区数据中心需要太阳能发电,而不是自然冷却
  13. i5 11400和锐龙r5 5600X哪个强
  14. Oracle的12c版本打补丁
  15. RSA对称加密 Util工具类
  16. MySQL 数据库 User表权限以及用户授权详解
  17. linux 清空文件内容的方式
  18. 网易闪电邮显示正在联系服务器,网易闪电邮如何正确添加outlook邮箱
  19. keep-alive清除缓存
  20. 中国的姓氏的日语表达

热门文章

  1. [JSOI2009]瓶子和燃料【数论】
  2. [数据库]特殊符号对应的ascii和键盘字符的十六进制表示
  3. 前端每日实战:33# 视频演示如何用纯 CSS 创作牛奶文字变换效果
  4. es6-let const
  5. iOS-从三维立方体到理解CATransform3DCGAffineTransformm34
  6. 超融合基础架构需要完全更换现有网络吗?
  7. 6个用好大数据的秘诀
  8. iOS开发--Runtime知识点整理
  9. C# int转string 每三位加一个逗号
  10. 转:Java NIO系列教程(一)Java NIO 概述