Loading

[笔记] prufer 序列

什么是 prufer 序列

是可以和 \(n\) 个有标号节点的无根树一一对应的长度为 \(n-2\) 的序列。

一般来说是用于和树相关的组合计数问题,但是可能会出现一些变形,所以除了要了解一些性质,大致的构造思路也要知道。

如何构建 prufer 序列

每次选择一个编号最小的叶结点并删掉它,然后在序列中记录下它连接到的那个结点。

重复 \(n-2\) 次后就只剩下两个结点,算法结束。

如何还原 prufer 序列

每次选择一个度数为 \(1\) 的最小的结点编号,与当前枚举到的 Prufer 序列的点连边,然后同时减掉两个点的度数。最后剩下两个度数为 \(1\) 的点,其中一个是结点 \(n\)。就把它们建立连边。

prufer 序列的一些性质

  • 在构造完 Prufer 序列后原树中会剩下两个结点,其中一个一定是编号最大的点 \(n\)

  • 每个结点在序列中出现的次数是其度数减 \(1\)(没有出现的就是叶结点)。

  • \(n\) 个有标号节点构成无根树的方案为 \(n^{n-2}\)

  • 对于每个点有度数限制的构成无根树的方案用可重排列公式,且可拓展为基环树

  • 一个 \(n\) 个点 \(m\) 条边的带标号无向图有 \(k\) 个连通块,希望添加 \(k-1\) 条边使得整个图连通,方案:

\[n^{k-2}\times\Pi_{i=1}^k s_i \]

  • \(n\) 个有标号节点构成 \(m\) 棵无根树的方案 (即 \(n+1\) 号点有 \(m\) 个儿子):

    \[\binom{n-1}{m-1}\times n^{n-m} \]

posted @ 2022-05-02 22:05  IrisT  阅读(77)  评论(0编辑  收藏  举报