前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >prufer序列笔记

prufer序列笔记

作者头像
attack
发布2018-04-18 17:41:24
1.3K0
发布2018-04-18 17:41:24
举报

 prufer序列

度娘的定义

Prufer数列是无根树的一种数列。在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2。

对于一棵确定的无根树,对应着唯一确定的prufer序列

构造方法

无根树转化为prufer序列

  1. 找到编号最小的度数为\(1\)的点
  2. 删除该节点并在序列中添加与该节点相连的节点的编号
  3. 重复\(1,2\)操作,直到整棵树只剩下两个节点

如下图的prufer序列为\(3,5,1,3\)

prufer序列转化为无根树

  1. 每次取出prufer序列中最前面的元素\(u\)
  2. 在点集中找到编号最小的没有在prufer序列中出现的元素\(v\)
  3. 给\(u,v\)连边然后分别删除
  4. 最后在点集中剩下两个节点,给它们连边

例如,对于prufer序列\(3,5,1,3\) 连边顺序为 \(2,3\), \(5,4\), \(1,5\), \(3,1\), \(3,6\) (实际上与构建prufer序列时相同) 以上两种操作都可以用set维护,时间复杂度\(O(nlogn)\)

性质

  1. prufer序列中某个编号出现的次数就等于这个编号的节点在无根树中的度数-1
  2. 一棵n个节点的无根树唯一地对应了一个长度为n-2的数列,数列中的每个数都在1到n的范围内。
  3. \(n\)个点的无向完全图的生成树的计数:\(n^{(n-2)}\),即\(n\)个点的有标号无根树的计数
  4. n个节点的度依次为\(d_1,d_2,…,d_n\)的无根树共有\(\frac{(n-2)!}{ sum_{i=1}^n(d_i-1)!}\)个,因为此时Prufer编码中的数字\(i\)恰好出现\(d_i-1\)次,\((n−2)!\)是总排列数
  5. n个点的 有标号有根树的计数:\(n^{(n-2)}*n = n^{(n-1)}\)

暂且写这些吧,先做做题,然后继续整理

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  prufer序列
  • 构造方法
    • 无根树转化为prufer序列
      • prufer序列转化为无根树
      • 性质
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档