状压(集合幂级数)数符合某些性质的导出子图/边子图数。
APIO2025 记录
限制分为无向图的连通性和有向图的强连通性,以及双连通性。
要做的比 好,需要集合幂级数的运算。
连通性
可以容斥为总方案数减枚举一个包含最小点的子集不连通的方案数。复杂度 。
“已知要求连通的信息推及不要求连通的信息” 及其逆过程。
考虑 exp/ln 的组合意义:设 表示导出子图 的权值, 表示 的所有划分方案的权值和,划分方案的权值为划分出的子集的权值积。有 。
数连通子图
计数边子图使得是连通图。
。
设 为 的导出子图的边子图有多少是连通图,。则 恰好考虑 的导出子图的边子图个一次,。 反推 。
数连通二分子图
计数边子图使得连通且是二分图。
。
枚举左部点 ,右部点 ,左右任意连。
忽略连通限制,原图的一个二分子图被计入 次, 为连通块数。所以 exp 每拼上一个子图都要乘 。
设 为 的答案乘 ,,子集卷积求 ,。
数杏仁图
给定杏仁的两极 ,对于每个 计数边子图使得是杏仁且 。
。
把从 出发的所有链状压求出来 。把这些链挖掉两极 exp 起来。询问时枚举 所在的链和 剩下的任意组合的方案相乘。
Q6954
计数边子图使得连通且所有环的交非空。
。
两个环交于大于两个点会形成新的大环,这三个环至多交于 点。
所以合法的状态有:树、基环树、 个点使得删去后图中无环。容斥掉树上删点也无环:。
子集的生成树数可以矩阵树 。也可以依次对于每个 ,算 的方案数,即把 的子集乘上与 的连边数 exp 起来,复杂度 。
基环树是枚举环上的点集 ,先状压出环上排列的方案数,再把环缩成一个点做生成树计数。每个基环树有一个与环大小相关的容斥系数。复杂度 。
删一个点图中无环,枚举删 ,剩下的子集内部有生成树数,还有至少一条连向 ,exp 起来。复杂度 。
删两个点图中无环,枚举删 ,每个剩下的子集选至多一条边与 连,不能没有,exp 起来,复杂度 。还有一种数重的情况,变成 和 不连通,即两个树。
可以用 的集合幂级数代替 的枚举子集。
图 k 匹配
加速到 。
强连通性
缩点后为 DAG,对 零度点 容斥,枚举零度点集合,容斥系数 为 。
有一些有意思的事情:比如可达性的容斥,把零度点当成 bfs 的最浅层点,系数也是 ,但是显然有更简单的做法。
无向图重定向为 DAG 的方案数
可以看成从空集开始每次加上一个集合(有序),集合带有 的系数。对于集合幂级数 , 且 。,等价于求 在全集的系数。求逆。
重塑时光
设 表示 分为 个非空段形成 DAG 的方案, 为 分为 个非空段段间没有边的方案数。容斥系数同 DAG 计数,可以做到 。设 ,,拉插之后算系数,复杂度 。
主旋律
数多少个边子集,删去之后图强连通。
设 表示强连通的方案, 表示若干个 度点拼起来的方案,交替转移。
先算 ,再算 ,再给 加上 。
岁月
数多少个边子集,删去之后图的最小外向生成树权值等于图的最小生成树。
here。
对于边权全相同的边,就是 主旋律。
按边权从小到大加入边,旧图的根集当作点,魔改一下。