POJ 1325 二分图匹配-匈牙利算法

又是个模板题,,不打算敲了,讲下自己的想法。

刚开始的时候不知道怎么建图,原先想的是把任务和机器的mode[0,n+m)进行连接,(因为任务要全部完成)。但是发现这样不对啊,题目求的是最小的任务数。如果这样建图,根本求不出来。后来看到题解说是一边是A,一边是B,舍弃掉0后,建图。这样一想觉得开朗一些,这样即求最小点覆盖(全部边覆盖)。然后就开始想着为什么最大匹配等于最小点覆盖。

证明需要两点:

1、当最大匹配时,可以达到覆盖所有的边。此时m个节点是最大匹配的节点,对于左右两边的被匹配的节点,都把和他们相连的边标记,则达到覆盖所有的边。如果不能覆盖所有的边,即存在一条边,两边的端点都没被选中,那么与m个节点为最大匹配相矛盾,此假设不成立。

2、当最大匹配时,m个节点是全部覆盖的最小点数。若存在n(n<m)个节点是最小点,此时有m-n条边未选中,他们都不能与其响应匹配的边相连,所以一定不能达到完全匹配。


其实是不是还要证最小点覆盖等于最大匹配。。。。

再说吧。。。。。

然后就是套模板的事了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值