poj 3020 匈牙利算法

来源:互联网 发布:医院网络安全保密协议 编辑:程序博客网 时间:2024/06/03 17:30

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

题目大意:现有四种天线,每种都只能覆盖东西南北中的一个方向上相邻的两点,现给你一个矩阵,上面分布着需要天线覆盖的点,让求最少需要多少个天线才能覆盖所有点。

思路:以'*'为顶点,四个方向相邻的'*'之间建边,由于一条匹配边的两个顶点在计算匹配数时重复计算了,故最后真正的匹配边数应该是算出的最大匹配数除以2(这个纠结了好长时间)

最少需要天线数= 最大匹配数/2+未匹配数= 最大匹配数/2+(*的总数-匹配数)=*的总数-最大匹配数/2

 
 

原创粉丝点击