JZOJ4196. 二分图计数(容斥)

题意:
二分图,左边n个点,右边m个点
左边每个点都与右边某一点不相连
令S表示选择左边点的状态集合,g(S)表示选择里面的点,且里面的点与右边某一点连接,且右边的点最多只能跟一个左边点相连,总共的方案数
2n1s=1SG(S) ∑ s = 1 2 n − 1 S ∗ G ( S )
想法:
比赛看懂题意,想到容斥,不会做

这里写图片描述
对于每个 S S ,枚举S1,然后令 SS1 S − S 1 的点与右边剩余点随意连边,取得方案数
最后利用容斥原理即可
至于如何枚举,长这样
时间复杂度 3n 3 n

    fo(i,1,cm[n]-1){
        j=i;
        while (j>-1){
            j&=i;
            if (bz[j]){
                s=f[sum[j]+1][sum[i]];
                if((sum[j]&1))
                    ans[i]=(ans[i]-s+mo)%mo;
                else ans[i]=(ans[i]+s)%mo;
            }
            j--;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值