有标号DAG计数

本文探讨了如何计算有标号的有向无环图(DAG)的数量。通过枚举入度为0的点数量,利用二项式反演公式推导出递推关系,并简化计算过程。此外,还涉及了弱联通有标号DAG的计数方法,通过容斥原理和生成函数进行描述。
摘要由CSDN通过智能技术生成

题目

f i f_i fi i i i个点的有标号 D A G \rm DAG DAG数量。
枚举有 j j j个点使其入度为 0 0 0 D A G \rm DAG DAG数量:
g j = ( i j ) 2 j ( i − j ) f i − j g_j = \binom ij 2^{j(i-j)} f_{i-j} gj=(ji)2j(ij)fij
设恰好有 j j j个点入度为 0 0 0 D A G \rm DAG DAG数量为 h j h_j hj
g k = ∑ j = k i ( j k ) h j g_k = \sum_{j=k}^i\binom jk h_j gk=j=ki(kj)hj
二项式反演即可得到 h k = ∑ j = k i ( − 1 ) j − k ( j k ) g j h_k = \sum_{j=k} ^i (-1)^{j-k} \binom jk g_j hk=j=ki(1)jk(kj)gj
所以 f i = ∑ j = 1 i h i = ∑ j = 1 i ∑ k = j i ( − 1 ) k − j ( k j ) g k f_i = \sum_{j=1}^i h_i = \sum_{j=1}^i \sum_{k=j}^i (-1)^{k-j} \binom kj g_k fi=j=1ihi=j=1ik=ji(1)kj(jk)gk
= ∑ k = 1 i g k ∑ j = 1 k ( − 1 ) k − j ( k j ) =\sum_{k=1}^i g_k \sum_{j=1}^k (-1)^{k-j} \binom kj =k=1igkj=1k(1)kj(jk)
= ∑ k = 1 i g k ( [ k = 0 ] − ( − 1 ) k ( k 0 ) ) =\sum_{k=1}^i g_k \left([k=0] - (-1)^k \binom k0\right) =k=1igk([k=0](1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值