bzoj2839: 集合计数(容斥原理)

该博客讨论了如何在有N个元素的集合中,根据容斥原理计算选取特定交集元素个数的子集方案数。文章通过Cnk组合数与二进制选择的结合,解释了如何排除重复的子集,并给出了相应的算法实现。
摘要由CSDN通过智能技术生成

传送门
题意简述:对于一个有N个元素的集合在其2^N个子集中取出若干集合(至少一个),使得它们的交集的元素个数为K,求取法的方案数。


思路:考虑枚举相交的是哪 k k k个,有 C n k C_n^k Cnk种方案,然后考虑剩下的可选可不选一共有 2 2 n − k 2^{2^{n-k}} 22nk种选法,但是这样选出来的集合可能有其余的数相交,因此我们容斥掉多余的:
a n s = C n k ∗ ∑ i = 0 n − k C n i 2 2 n − k − i ans=C_n^k*\sum_{i=0}^{n-k}C_n^i2^{2^{n-k-i}} ans=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值