题意:有个N*N的网格,有一部分格子里有陨石,小明有很牛逼的武器,打一枪后一行或一列的陨石就没了,给出陨石分布,求最小打炮数。
分析:其实就是Konig定理。记最小打炮数为m,在网格里你最多可以找出M个互相之间既不在同一行又不在同一列的元素,也就是说你再找一个元素它必定与已有的某个元素同行或同列,Konig定理就是:m = M。至于具体打时是打某一行还是某一列,要看剩下的元素与现有元素共行或共列的情况了。
那么问题就转化成找出这M个陨石,把行和列看做一个二分图,那么找M就是找最大匹配了。
和POJ1274类似。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)