poj 1904 强连通图

题目链接:http://poj.org/problem?id=1904

题目意思:有n个女生和n个男生,给定一些关系表示男生喜欢女生(即两个人可以结婚),再给定一个初始匹配,表示这个男生和哪个女生结婚,初始匹配必定是合法的.求每个男生可以和哪几个女生可以结婚且能与所有人不发生冲突。
思路:将男生从1到n编号,女生从(n+1)到2*n编号,输入时如果男生u可以和女生v结婚,那么就做一条从u到v的边(u,v),对于输入的初始匹配(u,v)(表示男生u和女生v结婚),那么从v做一条到u的边(v,u),然后求解图的强连通分量,如果男身i和女生j在同一个强连通分量内,且i到j有直接的边。则他们可以结婚。

给定2*n个顶点的二分图以及一个完美匹配,确定所有的点对(u,v),使去除u,v之后的二分图仍有完美匹配。

首先,把原图的边改成有向的(从男到女)。然后,对于给定的匹配(u,v),添加边v->u。如果两个点在同一个强连通分量里,他们就是合法的点对。

对于一个有完美匹配的二分图。
1:任意找出一个完美匹配。
2:在原来的边不变的情况下。对于求出的任一个完美匹配i(左),j(右),则连接反向边j到i。
3:求强联通。
4:对于每一个联通块。
按二分图的左右分成两堆A和B。
所有在A中点i,如果和B中的点j有直接的边i到j(不是j到i)
那么i就可以和j匹配。
5:所有满足条件的就是i的所有的可能的解。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值