G - Connectivity 2
题意:给你一张无向图,有 n n n 个顶点和 m m m 条边,存在 2 m 2^m 2m 种不同的子图。求子图的数量满足 1 1 1 和 i i i 联通。 n < = 17 n<=17 n<=17。
Solution:
状压 dp 神题。
- 1 1 1 和 i i i 联通等价于 1 1 1 和 i i i 在同一连通块中。
- 看到总状态数 2 m 2^m 2m ,于是想到容斥,不过本题的条件是 至少存在一条
1->i
的路径 ,所以很遗憾暂时没有看到容斥的做法。 - 回到连通块的思考中。启发我们 枚举终止状态中 1 1 1 和 i i i 所处连通块集合,此时大概是一个连通块,内部点没有向外部点连的边。
- 那么我们只要计算出 f ( S ) f(S) f(S) 表示使集合 S S S 联通的图的方案数即可。令 c n t ( S ) cnt(S) cnt(S) 表示集合 S S S 内边 ( x , y )