题意:
二分图,左边n个点,右边m个点
左边每个点都与右边某一点不相连
令S表示选择左边点的状态集合,g(S)表示选择里面的点,且里面的点与右边某一点连接,且右边的点最多只能跟一个左边点相连,总共的方案数
求∑2n−1s=1S∗G(S)∑s=12n−1S∗G(S)
想法:
比赛看懂题意,想到容斥,不会做
对于每个SS,枚举,然后令S−S1S−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--;
}
}

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

被折叠的 条评论
为什么被折叠?



