To_Heart—题解——BZOJ 4671

题目链接

link.

题解

虽然图很多,但是节点数只有 10。考虑枚举节点的联通状态,看哪些图是对其有影响。

定义 f i f_i fi 为有 i 个联通块的方案数。但因为是异或所以并不好处理。但是如果把条件放宽呢?定义 g i g_i gi 表示至少有 i 个联通块的方案数。发现这种定义下并不关心枚举的联通状态内部是否真正的联通,因为划分节点后已经满足最少有 i 个了。所以内部的边的异或状态并不关心,只需要每两个联通块之间有边即可。然后把每个图的需要的边状压一下放入线性基中,假设基的个数为 k ,那么当前这种划分对于 g i g_i gi 的贡献就是 2 s − k 2^{s-k} 2sk

再考虑 g i g_i gi f i f_i fi 的关系。对于 g i g_i gi ,假设真正分出了 n 个联通块,而我们确规定把他们划分在了 i 个块中。发现方案数满足第二类斯特林数,所以得到:

g i = ∑ j n { i j } f i g_i=\sum^{n}_{j} \left\{ ^j_i\right\} f_i gi=jn{ij}fi

然后斯特林反演即可。

posted @ 2023-05-09 17:52  To_Heart  阅读(4)  评论(0编辑  收藏  举报  来源