• 有标号 DAG 计数


    题目链接
    不考虑弱联通的限制,令(g_i) 表示(i) 个带标号点的(DAG) 个数。

    (DAG) 的一大特点是必然存在入度为(0) 的点。

    (c_{i,j}) 表示(i) 个点恰好有(j) 个入度为(0)(DAG) 个数,那么有

    [g_i=sum_{j=1}^ic_{i,j} ]

    直接计算(c) 十分困难,考虑二项式反演,令(h_{i,j}) 表示(i) 个点钦定了(j) 个入度为(0) 的点剩下的随便的(DAG) 计数,那么显然有

    [h_{i,j}=sum_{k=j}^iinom kjc_{i,k} ]

    反演一下可得

    [c_{i,j}=sum_{k=j}^iinom kj(-1)^{k-j}h_{i,k} ]

    (h) 的计算是较为容易的,我们有

    [h_{i,j}=inom ij2^{j(i-j)}g_{i-j} ]

    于是就得到

    [g_i=sum_{j=1}^isum_{k=j}^iinom kj(-1)^{k-j}inom ik2^{k(i-k)}g_{i-k}\ =sum_{k=1}^iinom ik2^{k(i-k)}g_{i-k}sum_{j=1}^kinom kj(-1)^{k-j}\ =sum_{k=1}^iinom ik2^{k(i-k)}g_{i-k}(0-(-1)^k)\ =sum_{k=1}^iinom ik(-1)^{k+1}2^{k(i-k)}g_{i-k}\ Rightarrow frac {g_i}{i!}=sum_{k=1}^ifrac{(-1)^{k+1}}{k!}2^{k(i-k)}frac {g_{i-k}}{(i-k)!} ]

    这里有一个神仙技巧

    [k(i-k)=inom i2-inom k2-inom{i-k}2 ]

    组合意义的话就是有两个集合,一个集合中有(k) 个元素,另一个有(i-k) 个元素,从中各选取一个的方案数等于总方案数减去不合法的。

    于是就有

    [frac {g_i}{2^{inom i2}i!}=sum_{k=1}^ifrac {(-1)^{k+1}}{2^{inom k2}k!}cdotfrac {g_{i-k}}{2^{inom {i-k}2}(i-k)!}(i>0) ]

    [F(x)=sum_{i=1}^{+infty}frac {(-1)^{i+1}}{2^{inom i2}i!}x^i\ G(x)=sum_{i=0}^{+infty}frac {g_i}{2^{inom i2}i!}x^i ]

    于是

    [G(x)=F(x)G(x)+1 ]

    (+1) 是因为有(g_0=1)
    解得

    [G(x)=frac 1{1-F(x)} ]

    求出(g_i) 之后,其(EGF)(ln) 就是我们要求的答案了。

    NO PAIN NO GAIN
  • 相关阅读:
    WM有约(二):配置信息
    ASP+Wrod、excel打印程序示例
    用stream直接下载文件
    ASP判断gif图像尺寸的方法
    白菜世纪RSS无刷新聚合器(1221修正)
    ASP.NET常用代码
    图片超过规定的大小就按原图片大小缩小
    javascript弹出窗口总结
    asp excel sql 关系大总结
    打开窗口
  • 原文地址:https://www.cnblogs.com/zmyzmy/p/14594349.html
Copyright © 2020-2023  润新知