zoukankan      html  css  js  c++  java
  • purfer序列

    prufer序列求法

    对于一个无根无向图我们可以应用prufer序列操作使它缩成一个序列。

    具体操作

    一,每次选出来树中编号最小的点且度数为一(即叶子节点)

    二,将与被删去的点相连的节点加入prufer序列中

    重复一,二,操作直到只剩下两个点(具体为什么剩下两个点在后文)

    将prufer序列转换为树

    因为prufer与一颗无根树一一对应,所以对于一个prufer序列我们还可以把它还原成无根树

    具体操作

    设prufer序列长度为len

    设定一个序列s为$1,2,3,…… len+2$

    每次取prufer序列的队头为pfrist

    在s中寻找一个满足prufer中不含你所选的数的最小

    将pfrist与你选的数连边,将s中你选的数删去,

    每次进行该操作,直到s剩下最后两个数时再将剩下的两个数之间连边

    经过这样的操作就得到了一棵树

    例如prufer序列为1 2 2,s序列为 1 2 3 4 5

    先让1和3连边,

    此时prufer序列剩下2 2 ,s剩下 1 2 4 5

    再让2和1连边

    此时prufer序列剩下2 ,s剩下 2 4 5

    然后再让2与4连边

    s剩下2 5  2 5之间再连边

    因为只用n-2个数就可以确定一棵树,所以如果将一个树转换为prufer序列剩下两个点再加入prufer中是没有意义的 

    prufer序列性质

    一,一棵无根树共有$n^{n-2}$种

    因为prufer序列中数唯一对应一棵树

    ,对于prufer序列共有n-2个数,每个数可以是1-n中任何一个数,所以得到$n^{n-2}$

    二,prufer序列中每个点出现次数为该点在无根树中度数-1

    观察我们将树转化为prufer序列过程可以得到二

    题目

    明明的烦恼(待做)
    树的统计

    题解:https://www.cnblogs.com/znsbc-13/p/11222262.html

    我已没有下降的余地
  • 相关阅读:
    网速测速结果,单位换算
    js实现多个列表分别倒计时功能
    微信小程序使用wxs在页面中调用js函数,颜色值格式转换 rgb和十六进制的转换
    css样式列表宽度自适应布局
    投资轮次说明
    Ajax与JSON共同使用的小实例
    js结构
    关于vue的小实例
    label与input之间的对应
    购物demo
  • 原文地址:https://www.cnblogs.com/znsbc-13/p/11221213.html
Copyright © 2011-2022 走看看