JZOJ4196. 二分图计数(容斥)

本文探讨了二分图中特定匹配方案的计数问题,通过枚举左侧顶点的不同状态集合并应用容斥原理来解决该问题。采用了一种时间复杂度为3^n的方法。

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

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

    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--;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值