二分图匹配的一些拓展

最小点覆盖

定义: 要求用最少的点(X集合或Y集合的都行) 让每条边都至少和其中一个点关联

最小点覆盖 = 最大匹配

简单证明: 如果不是最大匹配的话,一定还有一条边可以被选出并连接二分图两边的点,这条边就没有被覆盖

例:

Bessie想驾驶她的飞船穿过危险的小行星群,小行星群是一个N×N的网格(1 <= N <= 500),在网格内有K个小行星(1 <= K <= 10,000)。

幸运地是Bessie有一个很强大的武器,一次可以消除所有在一行或一列中的小行星,这种武器很贵,所以她希望尽量地少用。给出所有的小行星的位置,算出Bessie最少需要多少次射击就能消除所有的小行星。

分析: 武器作为点 , 行星为边, 跑最小点覆盖

 

最大独立集

定义: 最大独立集问题: 在N个点的图G中选出m个点,使这m个点两两 之间没有边.求m最大值

最大独立集 = n - 最小点覆盖 = n - 最大匹配

简单证明:

最大独立集与最小覆盖集是互补的,即把最小覆盖中“已选点”和“未选点”互换,就可 以得到最大独立集。我们可以看看下列条件

覆盖集:对于每条边,至少有一个点被选

独立集:对于每条边,至少有一个点不被选

这样,每个覆盖集和一个唯一的独立集互补,每个独立集也和唯一覆盖集互补,所以最大独立集与最小覆盖集互补

例:

分析: 直接跑最大独立集

 

最小边覆盖

定义: 覆盖所有顶点至少要几条边

最小边覆盖 = n - 最大匹配

简单证明: 设最大匹配为m , 那么没有匹配的点就睡n-2*m , 至少要n-2*m条边 , 加上原来的m 就是n-m

:(POJ3020)

一个矩形中,有N个城市,现在这n个城市都要覆盖无线, 若放置一个基站,那么它至多可以覆盖相邻的两个城市。

问至少放置多少个基站才能使得所有的城市都覆盖无线?

分析: 无向图转二分图 , x 向 y' , y向x' 连边 , 然后最小边覆盖

 

 

DAG 不相交路径覆盖 

一个点拆成两个点 

最小路径覆盖 = n - 最大匹配

简单证明: n个点最多n条边可以覆盖 , 我们合并二分图中的两个点相等于把两条边搞到一起 , 这样就少了一条边

: POJ1422

DAG 相交路径覆盖

求传递闭包重新建边, 同上 

:POJ2594

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FSYo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值