zoukankan      html  css  js  c++  java
  • 一些关于prufer的结论

    退役前写的东西

    简单介绍

    定义1(prufer)序列是无根树的一种数列。通过一棵阶为(n)的树转化来的(prufer)数列长度为(n-2)

    构造1:无根树转(prufer)序列

    序列初始为空
    (1))找到编号最小的度数为(1)的点
    (2))删除该点,同时在(prufer)序列中添加与该点唯一相邻的点的编号
    (3))重复上述操作,直到树仅剩两个节点

    推论1:度数为(p)的点在(prufer)序列中出现(p-1)

    构造2(prufer)序列转无根树

    初始点集(S={1,2,...,n})(n)为无根树的阶
    (1))(prufer)序列最前面的元素(x),并将其从序列中删除
    (2))(S)中找到最小的没有在(prufer)序列中出现的元素(y)
    (3))((x,y))添加进(E),并在(S)中将两元素删除
    (4))如果|S|=2,则将这两点的点对加入(E)

    推论2:无根树与(prufer)序列呈双射关系

    根据构造1,构造2容易一一对应起来

    定理1((Caylay)):阶为(n)的树个数有(n^{n-2})
    推论3:阶为(n)的树,给定每个点(i)的度数(deg_i),则树的个数为$$frac{(n-2)!}{prodlimits_{i=1}^n(deg_i-1)!}$$

    应用

    以下(n)默认为树的阶
    (1)):强制(deg_1=k),树的个数为:(inom{n-2}{k-1}(n-1)^{n-k-1})

    (2))(K_nsetminus e)的支撑树个数为((n-2)n^{n-3})

    考虑出现(e)的个数
    (e)出现在某个支撑树的概率为(frac{n-1}{inom{n}{2}}),则期望次数为(frac{n-1}{inom{n}{2}} imes n^{n-2}=2n^{n-3})
    (n^{n-2}-2n^{n-3}=(n-2)n^{n-3})

    (3)):设(T)为某个支撑树,有任意序列({x_1,x_2,...,x_n}),则有(prodlimits_{i=1}^n x_i(sumlimits_{i=1}^n x_i)^{n-2}=sumlimits_{T}prodlimits_{i=1}^n x_i^{deg_i})

    即证((sumlimits_{i=1}^n x_i)^{n-2}=sumlimits_{T}prodlimits_{i=1}^n x_i^{deg_i-1})
    将其展开,即为编号与(x)一一映射后的求值

    (4))(n)个点,组成(m)棵树的个数为(mn^{n-m-1})(钦定树根)

    (m)个点缩成(1)个点,且(x_1=m),其他点(x_i=1),然后代入(3))即可

    (4)):求(K_n)中各点度数均不超过(3)的支撑树个数

    (n_1,n_2,n_3)分别为度数(1,2,3)的个数
    当确定(n_1,n_2,n_3)时,个数为(inom{n}{n_1,n_2,n_3}frac{(n-2)!}{2^{n_3}})
    (n_1+2n_2+3n_3=2n-2),又度数为(2)的点在树上仅有一个儿子,易得(n_1=n_3+2,n_2=n-2n_3-2)
    则个数为((n-2)!sum_{n_3=0}^{lfloorfrac n2 floor-1}2^{-n_3}frac{n!}{n_3!(n_3+2)!(n-2n_3-2)!};)
    根据OEIS sequence A003692
    ((n+2)a_n = n(2n-1)a_{n-1} + (n-3)(n-1)na_{n-2};.)

    (5))(K_{m,n})的支撑树个数为(m^{n-1}n^{m-1})

    证明1:
    考虑改化(prufer)序列的构造方式,依然选择叶子,但每次固定特定区域的叶子选择
    (mle n),我们这样添加进来:
    (underbrace{mathsf{N,N,dots,N}}_{n-m},underbrace{mathsf{N,M,N,Mdots,N,M}}_{2(m-1)})
    结论:在(K_{m,n})的支撑树中,((mle n))(n)部分总有至少一个叶子节点((2n>n+m-1)
    证明2
    (x^T=x_1^{deg_1-1}x_2^{deg_2-1}cdots x_n^{deg_n-1})
    (P_{n,m}=sumlimits_{T}x^T)(Q_{n,m}=(x_1+x_2+cdots+x_m)^{n-1}(x_{m+1}+cdots+x_{m+n})^{m-1})
    我们可以证明(P_{n,m}=Q_{n,m})
    (P_{m,n}^i=sum_{substack{T ext{ such that}\ v_i ext{ is a leaf}}} x^T),显然(P_{m,n}^i=P_{m,n}Big|_{x_i=0})
    我们有如下转化

    [left{; egin{array}{c} ext{spanning trees of $K_{m,n}$ where }\ ext{$v_i$ is a leaf, with neighbor $v_{m+j}$} end{array} ; ight}iff{; ext{spanning trees of $K_{m,n}setminus {v_i}$ };}]

    (sum_{Tin LHS}x^T=x_{m+j}sum_{Tin RHS}x^T)
    根据归纳我们能得到

    [sum_{Tin RHS}x^T=(x_1+x_2+dots+x_m)^{n-1}(x_{m+1}+x_{m+2}+dots+x_{m+n})^{m-2}Big|_{x_{i}=0} ]

    综合得到

    [egin{aligned}P_{m,n}Big|_{x_i=0}&=P_{m,n}^i \&=sum_{substack{T ext{ such that}\ v_i ext{ is a leaf}}} x^T \&=sum_{j=1}^mhspace{-1em} sum_{substack{T ext{ such that}\ v_i ext{ is a leaf}\ ext{with neighbor $v_{m+j}$}}}hspace{-1em} x^T \&=sum_{j=1}^mx_{m+j}sum_{T ext{ spans }K_{m,n}setminus{v_i}}x^T \&=left(sum_{j=1}^mx_{m+j} ight)(x_1+x_2+dots+x_m)^{n-1}(x_{m+1}+x_{m+2}+dots+x_{m+n})^{m-2}Big|_{x_{i}=0} \&=(x_1+x_2+dots+x_m)^{n-1}(x_{m+1}+x_{m+2}+dots+x_{m+n})^{m-1}Big|_{x_{i}=0} \&= Q_{m,n}Big|_{x_{i}=0} end{aligned}]

    由于(P_{m,n}Big|_{x_i=0}= Q_{m,n}Big|_{x_{i}=0})(x_i)(P_{m,n}-Q_{m,n})的因数。进一步的,(prod x_i)(P_{m,n}-Q_{m,n})的因数,所以阶数为(m+n)
    根据(P_{m,n},Q_{m,n})的定义,其阶数是(n+m-2)
    (P_{m,n}=Q_{m,n})

    (6))(n)个点(n)条边的无向连通图的个数为(sum_{k=3}^{n}frac{n!n^{n-k-1}}{2(n-k)!})

    n个点选k个点作为树根:(inom{n}{k} imes n^{n-k-1} imes k)
    (n-k-1)个位置随便选,第(n-k)个位置的时候只剩下环和某个点,然后某个点选择环上一个点作为父亲
    然后剩下算环的方案数就行
    (sum_{k=3}^{n}inom{n}{k} imes n^{n-k-1} imes k imes frac{(k-1)!}{2})

    (7))(K_n),给定一个(f)个点的树,包含其的支撑树个数为(n^{n-f-1}f)

    将这棵树缩起来,枚举其与剩下((n-f))个点的度数,然后根据((1))
    (sum_{k=1}^{n-f} inom{n-f-1}{k-1} (n-f)^{n-f-k} f^k)

    (8))(2n)个点的数,(n)个叶子节点的生成树个数为({2nchoose n} {2n-2race n} n!)

    证明1:
    选择叶子集合,剩下(n)个点,由于不是叶子节点,必定出现在prufer序列中
    证明2:
    钦定有多少个点没有出现过容斥
    (sum_{r=n}^{2n}(-1)^{r-n}cdot{r choose n}cdot{2n choose r}cdot(2n-r)^{2n-2})

    (9))(K_n),怎么删掉两条边生成树个数最大

    缩点:
    (e_1,e_2)相邻
    (sum_{i=0}^{n-4}3^{i+1}inom{n-4}{i}(n-3)^{n-4-i})
    枚举出现次数(i),则有(i+1)条边
    (e_1,e_2)不相邻
    (sum_{i=0}^{n-4}inom{n-4}{i}2^{i+2}2^i(n-4)^{n-4-i})
    (2^{i})为对(e_1,e_2)分类

  • 相关阅读:
    练习
    js简介、基本语法、类型转换、变量、运算符、分支语句、循环语句、函数、函数调用
    样式表、格式布局、流式布局
    表单
    图片热点、网页划区
    JS模拟窗口
    JavaScript 常用功能实现一览(一)
    分页打印控制 摘自于网络:http://www.cnblogs.com/joinger/articles/1807517.html
    我眼中的C#3.0 摘自于网络:http://www.cnblogs.com/joinger/articles/1297237.html
    .net ToString()用法详解与格式说明
  • 原文地址:https://www.cnblogs.com/Grice/p/15506418.html
Copyright © 2011-2022 走看看