• DAG 计数


    以下方法都是按照这个套路:
    考虑一个不一定连通的 DAG ,你枚举一些零度点(拓扑序第一层)集合 (S),这些点之间不能连边,这些点跟剩下点(点集为 (T),(|S| cup |T| = |V|))的连边只能由 (S ightarrow T)(T) 是一个 DAG。
    但这样算会重复,因为没有考虑到其他 (T) 中的零度点,会算重,然而显然是二项式的容斥形式,带上容斥系数 ((-1)^{|S|+1}) 即可。

    有标号 DAG 图计数(不要求连通)

    (nle 200000)

    Sol

    根据上述即 (f(n)=sum_{i=1}^n (-1)^{i+1} {nchoose i}f(n-i)2^{i(n-i)}),多项式求逆可以做到 (O(nlogn))

    有标号 DAG 图计数(要求弱连通)

    (nle 200000)

    Sol

    根据集合与划分的关系设不一定连通的 DAG 的 EGF 为 F,设连通的 DAG 的 EGF 为 G,(F=e^G ightarrow G=ln(F))

    DAG 子图计数

    给定 (m) 条边,每条边各有 (frac{1}{3}) 的概率 (u ightarrow v)(v ightarrow u) 或断开。
    求这个图是 DAG 的概率,无重边无自环。

    (nle 20,mle n^2)

    Sol

    状压 DP,(dp_S=sum_{Tsubset S,T e varnothing} (-1)^{|T|+1} dp_{S-T} P_1(S) P_2(S ightarrow T)),两个概率的式子都很容易写出来。
    可以用子集卷积优化到 (O(n^22^n))

    DAG 子图计数

    你有一个 (n) 个节点的有向图,我们称一个合法的方案是将其中一些边的方向翻转之后使得剩下的图无环。
    对于所有合法的方案,将方案中翻转方向的边的数量求和。

    (nle 20)

    Sol

    注意一个方案倒转后依然合法,那么这两个图的贡献和为 (m),我们可以直接计数 DAG 的数目。
    状压 DP, 枚举第一层点转移,子集卷积优化 (O(n^22^n))

  • 相关阅读:
    OpenCV学习
    STL容器
    实践教学小程序(2022529)
    抖音下载 Elon
    抖音极速版下载 Elon
    vue脚手架快速搭建
    Vue elementUi组件库 input输入内容没有回显
    Django admin后台使用markdown
    Vue elementUi组件中使用下拉框,eldropdownitem @click事件无效
    MinGWw64 离线包安装方法
  • 原文地址:https://www.cnblogs.com/bestwyj/p/11583312.html
Copyright © 2020-2023  润新知