这道题题意和ZOJ 1002 Fire Net 一样,只不过是数据规模较大(50*50,而1002只有4*4),所以1002可以直接暴搜解决问题,这个用搜索肯定不行。思路是转化成二分图,求最大匹配。
每个 'o' 点可以放置机器人,如果一个点放置一个机器人后,它能影响到的范围(上下左右四个方向,遇到边界,或者 '#' 截止)内就不能再放机器人,所以以能放置机器人的区域的横坐标为 x 集合,以纵坐标为 y 集合构图,求最大二分匹配即可
ps:有点要注意,以这种方法构图的话,矩阵中有几个 'o' 点,二分图中就有几条边。这点可以用来检验构图的正确性