洛谷 P1682 过家家 题解

这是一篇并查集的题解
用并查集基本上就是线性时间复杂度,而且代码少,也比较好理解
这道题我们男生和女生的关系与女生和女生之间的关系分开建图
最后大概能得到这么一副关系图

女生之间会形成几个联通快
同一个联通快中的任何一个女生都能选择连接到这个联通快的男生
例如最左边的那个联通快,因为每个女生每次选择不同的男生
可以看出每个女生都有三种选择,因而游戏进行三轮
同理右边那个最多进行两轮
而中间那个孤立的点一轮都无法进行
但是题目中又说 每一个女生最多能强制k个男生接受
例如当k=2时候

游戏就能多进行两轮,那么这个孤立的点也能进行两轮游戏了
我们在计算答案的时候,先不考虑k,得到每个联通快能进行的游戏轮数
然后再取最小值,记为ans.
那么考虑k之后的最终答案就是min(ans+k,n)
具体代码如下,短小精悍

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值