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

然后斯特林反演即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值