【转】prufer编码
既然有人提到了,就顺便学习一下吧,来源: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编码相关推荐
- 遗传算法应用(实例详细演示最小生成树的prufer编码和Cayley定理)
prufer编码:用n-2位自然数唯一的表达出一棵n个节点的生成树.而且两者相互可逆,即给定一颗生成树的连接方式,可以唯一确定这棵树的编码. Cayley定理:n个顶点的完全图中有nn−2n^{n-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 ...
- 树的Prufer 编码和最小生成树计数
Prufer数列 Prufer数列是无根树的一种数列.在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2.它可以通过简单的迭代方法计 ...
- 树的计数 Prüfer编码与Cayley公式 学习笔记
最近学习了Prüfer编码与Cayley公式,这两个强力的工具一般用于解决树的计数问题.现在博主只能学到浅层的内容,只会用不会证明. 推荐博客:https://blog.csdn.net/moreja ...
- 【BZOJ 1005】[HNOI2008]明明的烦恼 【Prufer序列】
(1) 树的prufer编码的实现[1] 不断删除树中度数为1的最小序号的点,并输出与其相连的节点的序号直至树中只有两个节点 对应的prufer序列就是3,5,1,3. Data.in 6 5 1 3 ...
- bzoj 1211 [HNOI2004]树的计数
[HNOI2004]树的计数 Description 一个有n个结点的树,设它的结点分别为v1, v2, -, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, ...
- BZOJ-1005 明明的烦恼
Prufer编码练习题,这个编码是跟树的生成计数有关系的. 推荐这篇博文:http://www.cnblogs.com/zhj5chengfeng/archive/2013/08/23/3278557 ...
- HNOI模拟 Day3.22
第一题: 盾盾的打字机 (drdrd) [题目描述] 盾盾有一个非常有意思的打字机,现在盾哥要用这台打字机来打出一段文章. 由于有了上次的经验,盾盾预先准备好了一段模板 A 存在了内存中,并以此 ...
- BZOJ 1005: [HNOI2008]明明的烦恼
BZOJ 1005: [HNOI2008]明明的烦恼 Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在 任意两点间连线 ...
最新文章
- 关于object references an unsaved transient instance - save the transient instance before flushing的解决方法
- python 连接数据库对中文读取超过_python 处理中文 读取数据库输出全是问号
- V3S代码整合中遇到的一个奇怪问题
- 区块链预言机(2)预言机概念
- 如何在SAP Spartacus里监控用户浏览了某产品明细页面的动作
- C语言头文件 “ 细节 ”
- 面型对象 (接口与类的区别)
- docker php composer 使用_如何使用Docker部署PHP开发环境
- 《Head First 设计模式》专题上线
- UltraEdit(UE)如何设置去掉.bak备份文件?
- HTML页面嵌入视频无法播放的常见原因
- 热带地区数据中心需要太阳能发电,而不是自然冷却
- i5 11400和锐龙r5 5600X哪个强
- Oracle的12c版本打补丁
- RSA对称加密 Util工具类
- MySQL 数据库 User表权限以及用户授权详解
- linux 清空文件内容的方式
- 网易闪电邮显示正在联系服务器,网易闪电邮如何正确添加outlook邮箱
- keep-alive清除缓存
- 中国的姓氏的日语表达