zoukankan      html  css  js  c++  java
  • 数论之prufer序列

    定义

    (Prufer) 数列是无根树的一种数列。

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

    构造

    对于一棵确定的无根树,对应着唯一确定的 (prufe) r序列

    无根树转化为prufer序列

    一种生成 ( ext{prufer}) 序列的方法是迭代删点,直到原图仅剩两个点。

    对于一棵顶点已经经过编号的树 (T)

    顶点的编号为 (1,2,dots,n)

    在第 $ x$ 步时,移去所有叶子节点(度为 (1) 的顶点)中标号最小的顶点和相连的边

    并把与它相邻的点的编号加入$ ext{prufer} $序列中,重复以上步骤直到原图仅剩两个顶点。

    prufer序列转化为无根树

    设$ langle a_1,a_2,dots,a_{n-2} angle$ 为一棵有 (n) 个节点的树的 $ ext{prufer}$ 序列

    另建一个集合 (Bbb G={1,2,3,dots,n})

    找出 $Bbb G $ 中最小的未在 $ ext{prufer} $序列中出现过的数

    将该点与( ext{prufer}) 序列中首项连一条边,并将该点和 ( ext{prufer}) 序列首项删除

    重复操作 (n-2) 次,将集合中剩余的两个点之间连边即可。

    推论

    (1)、通过构造过程可知,每个点在度数为 (1) 时被删去

    其余时刻被加入 $ ext{prufer} $ 序列一次则它的度数减少一

    所以每个点在$ ext{prufer} $ 序列中的出现次数为它的度数 (d-1)

    (2)(n) 个点的有标号的无根树的计数 (n^{n-2})

    (3)(n) 个点的有标号的有根树的计数 (n^{n-1})

    (4)(n)个节点的度依次为(d_1,d_2,…,d_n) 的无根树共有 (frac{(n-2)!}{ prod_{i=1}^n(d_i-1)!})

  • 相关阅读:
    [Codeforces-div.1 809C] Find a car
    [Codeforces-div.1 55D] Beautiful numbers
    [BZOJ3598] [Scoi2014]方伯伯的商场之旅
    [BZOJ3131] [Sdoi2013]淘金
    [BZOJ2757] [SCOI2012]Blinker的仰慕者
    [BZOJ3329] Xorequ
    [POJ3744] Scout YYF I
    angular-file-upload 回显已上传的文件
    angular-file-upload 限制文件上传个数 获取已上传文件队列
    angular-file-upload 一款好用的文件上传组件,基本应用
  • 原文地址:https://www.cnblogs.com/liuchanglc/p/14069637.html
Copyright © 2011-2022 走看看