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

    (prefur)序列给出了序列和无根树之间的一一对应关系

    树转化序列

    依照下面的办法可以找到序列,重复操作直到只剩下两个点:

    1. 找到一个度数为1,并且编号最小的点(这个性质保证了唯一对应,原因是下面的2并且方便了还原)

    2. 将这个点的父亲加入序列,然后将这个点删除

    可以发现,我们这个序列长度(n-2)(原因是每一个数都会在他的父亲处算一次,注意其实本就没啥父亲的说法,只是感觉后加入的较晚成为叶子所以是父亲)

    下面是我的看法,我其实认为这是一个按照边个数和标号双排序的序列,但是这个并不严谨,因为这里指的边个数是随时在变化的

    序列转树

    我们先定义一个点集,表示我们还有多少个点没放回

    一开始点集为全集

    我们重复下面的操作,直到只剩下两个点:

    1. 取出序列最前面的点(x),并从点集中删除
    2. 取出在点集中但是不在序列中的最小编号点(y)(我们可以考虑这个就是逆运算,我们取出的最前面的点就是最早加入的点,同时叶子也是不会被记录的最小点排下来的,就像转化成子问题一样)
    3. (x)(y)之间连一条边

    最后将剩下的两个点相连

    显然这样会产生(n-1)条边

    (prufer)序列的性质

    这个也就是对于上面的一个应用的样子

    1. (prufer)序列和无根树一一对应(由此我们可以得到Cayley定理)
    2. 对于给定度数(d_{1-n})的无根树共有(frac{(n-2)!}{prod^{n}_{i=1}(d_{i}-1)!})种情况(证明就是考虑全排列,也是特殊的可重全排列)

    实际问题

    [HNOI2004]树的计数

    也就是上面性质的之间使用

  • 相关阅读:
    A
    E
    C
    A
    exgcd
    博客
    简单数论
    extended_gcd(扩展欧几里德算法) 青蛙的约会
    扩展欧几里德算法—求解不定方程,线性同余方程
    素数筛 E
  • 原文地址:https://www.cnblogs.com/zzqdeco/p/12606264.html
Copyright © 2011-2022 走看看