zoukankan      html  css  js  c++  java
  • 有无标号计数

    有标号有根树

    (n^{n-1})

    有标号无根树

    (n^{n-2})

    标号为(i)的点度数为(a_i)的无根树

    (frac{(n-2)!}{prod(a_i-1)!})

    无标号有根树

    (f_n)表示n个点的无标号有根树数量 ,(f)的生成函数为(F(x))

    我们考虑去除根节点的各个子树,可以分成若干个子问题,枚举大小为(k)的子树有多少个,再枚举大小为(k)的子树的(f_k)个形态选多少个

    [egin{split} [x^{n}]F(x)& =[x^{n}]xprod_{k>0}(sum_{i geq 0}x^{ik})^{f_k}\& =[x^{n}]xprod_{k>0}(frac{1}{1-x^k})^{f_k}\& =[x^{n}]xprod_{k>0}({1-x^k})^{-f_k}\& end{split} ]

    ([x^{n}])去掉

    [F(x)=xprod_{k>0}(1-x^k)^{-f_k} ]

    两边取(ln)

    [egin{split} lnF(x)& =ln(xprod_{k>0}(1-x^k)^{-f_k})\& =ln(x)+sum_{k>0}ln((1-x^k)^{-f_k})\& =ln(x)-sum_{k>0}f_kln((1-x^k))\& end{split} ]

    两边同时求导

    [frac{F'(x)}{F(x)}=frac{1}{x}+sum_{k>0}f_k frac{kx^{k-1}}{1-x^k} ]

    化简

    [xF'(x)=F(x)+F(x)sum_{k>0}f_kk frac{x^k}{1-x^k} ]

    比较第n项系数

    [nf_n=f_n+sum_{i>0}f_isum_{k>0}f_kk([x^{n-i}] frac{x^k}{1-x^k}) ]

    又由(frac{x^k}{1-x^k}=sum_{i=1}x^{ik})

    [egin{split} nf_n & =f_n+sum_{i>0}f_isum_{k>0}f_kk[k|n-i]\& =f_n+sum_{i>0}f_isum_{k|n-i}f_kk end{split} ]

    [f_n=frac{sum_{i=1}^{n-1}f_isum_{k|n-i}f_kk}{n-1} ]

    这样直接算(O(n^2))的,可以分治(NTT)做到((Onlog^2n))

    无标号无根树

    我们发现树只有1/2个重心,我们可以钦定这棵无根树的根为它的重心

    1.(n)为奇数。那么只有一个重心,若根不是重心, 那么其一定有恰好一颗子树,其大小超过(lfloor) (frac{n}{2}) ( floor), 枚举这个子树的大小并且扣去:

    [h_n=f_n-sum_{k= lfloor frac{n}{2} floor+1}^{n-1}f_k f_{n-k} ]

    2.(n)为偶数。此时可能有两个重心,若根不是重心/是唯一一个重心,按照上式算即可,但若根是两个重心之一,会重复计算,要减去

    [h_n=f_n-(sum_{k=frac{n}{2}+1}^{n-1}f_k f_{n-k})-C_{f_frac{n}{2}}^{2} ]

    有标号无向图

    (2^{C_n^2})

    所有点度数都是偶数的有标号无向图

    (2^{C_{n-1}^2})

    有标号无向连通图

    (F)表示有标号无向连通图的(EGF)(G)表示有标号无向图的(EGF),则

    [G=e^F ]

    [F=lnG ]

  • 相关阅读:
    文本框模糊匹配(纯html+jquery简单实现)
    ajax 基础2
    ajax 基础
    Js 实战3(实现全选)
    JS 实战2(邮箱选人功能)
    JS 实战1(添加、删除)
    Js 图片轮播渐隐效果
    Js 手风琴效果
    树上莫队
    洛谷 3676
  • 原文地址:https://www.cnblogs.com/zhongzero/p/11788475.html
Copyright © 2011-2022 走看看