汕头市选 2014 舞伴___状压dp

题目大意:

N 个男孩,N 个女孩,男孩和女孩可能是朋友,也可能不是朋友。现在要组成N 对舞伴,要求每对
伴都是一男一女,且他们是朋友。
统计不同配对方案的数量,因为结果很大,所以只要求除以M 的余数。

• 对于50% 的数据,N <= 9;
• 对于100% 的数据,1 <= N <= 20, 1 <= M <= 10^9; 0 <= Aij <= 1。

题解:

这题观察数据不难发现是一道很显然的状压dp:
我们设f[i,s]表示前i个男生女生状态为j时的配对方案总数。
然后转移很显然的
首先枚举一个男生i
其次枚举一个女生j
当a[i,j]=1即他们是好朋友的时候捏,
枚举女生的一个状态k
2^(j-1)≤k≤2^n-1
要满足j号女生存在,即从2^(j-1)枚举即可,不这样貌似会超时
要满足状态k有i个女生存在,即num[k]=i,此处可预处理
而后转移则
f[i,s]=f[i,s]+f[i-1,s-2^(j-1)]
注意取模即可

代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值