【题解】P6295 带标号 DAG 计数 | 容斥 多项式
在我的博客查看。
带标号弱连通 DAG 计数
前言:
前段时间做到了一个无向图边定向的题,就一直没搞懂其中的容斥,今天终于弄懂了。
题意:对弱连通带标号的简单 DAG 计数,。
“弱连通”这个限制可以表示为“集和”,任意 DAG 可以视作“集族”,所以二者的 EGF 满足关系 ,求出任意 DAG 计数再做 即可,现在考虑如何求出任意 DAG 计数。
考虑 dp,令 表示 个点的 DAG 的数量。
考虑将 DAG 分层,然后按照拓扑序加点,新加入的一些点没有后继,并且让原本的点向这些点连边。
但是考虑到原本的某些点也没有后继,即分层后相邻的若干层其实可以合并成一层,所以考虑容斥。
令钦定 个点这层的点的方案数为 ,恰好 个点的方案数为 ,则有 。
有二项式反演
其中
我们写出原本的式子:
因为转移来的项和 相关所以把求和换位,和 相关的放到前面:
把后面那坨补上一个 即可使用二项式定理得到 ,所以
感性地理解可以将含 个点层看作拥有 个属性的容斥。
这个东西显然可以分治 NTT ,把 的指数拆成二次剩余或者组合数作差就可以做到。
考虑优化,将这个式子变形一下,可以得到:
所以将 看作有序集族数, 看作集合数,多项式求逆即可做到 。
本文已经结束了。本文作者:ღꦿ࿐(DeepSea),转载请注明原文链接:https://www.cnblogs.com/Dreamerkk/p/17970918,谢谢你的阅读或转载!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2022-02-23 珂朵莉树学习笔记