Description
定义两个点数相同的图\(G_1,G_2\)的异或为一个新图\(G\)。\(G\)的点数和原来两个图一样,并且对于一条边\((i, j)\),如果在\(G_1,G_2\)中的出现次数异或起来为\(1\)的话,那么\((i, j)\)会出现在\(G\)中,反之则不会出现。
给出\(s\)个有\(n\)个点的图\(G_1, G_2,\ldots,G_s\),求这些图有多少个子集异或起来得到的图是一个联通图。
\(2\leq n\leq 10, 1\leq s\leq 60\)。
Solution
数数题,启动!
恰好有一个连通块的情况是不好统计的,但是至少有一个连通块的情况很好统计。我们只需要枚举\(n\)个点的集合划分(\(B_{10} = 21147\),所以不虚),保证不同集合之间没有边就行了。这样假设划出来了\(c\)个集合,那么最后的连通块数一定不小于\(c\)。
考虑不同集合之间没有边的条件如何处理。注意到这样就要求了包含这条边的图只用了偶数个,那么把所有这种条件列成一个方程组就是一个\(s\)元异或方程组。而我们知道一个\(s\)元异或方程组(假设其矩阵为\(A\))的解数为\(2^{s - r(A)}\),而\(r(A)\)就等于该矩阵的线性基数量,用线性基那一套传统艺能就可以求了。
然后我们现在只求出了至少\(c\)个连通块的方案,要想知道只有一个连通块的方案,势必要容斥一下。根据容斥系数那一套理论,我们要求右边的条件是\([n = 1]\),因此容斥系数\(\mathrm{coef}_i\)应当满足: \[
\sum_{i = 1}^n \begin{Bmatrix}n\\i\end{Bmatrix}\mathrm{coef}_i = [n = 1]
\] 使用打表等传统艺能可知\(\mathrm{coef}_i = (-1)^{i - 1}(i - 1)!\),然后这题就做完力……
Code
1 |
|