1562: 火力网
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:18
解决:12
题目描述
有一个正方形的城市,城市里有笔直的街道。城市的地图就是一个n行、n列的正方形的框图。其中的每行或每列可代表一条街道或者是墙。
城中有些碉堡,它有四个开口,每个开口分别朝向东南西北,并且每个开口可以进行射击。假定碉堡开口射出的子弹威力足够大,可以摧毁在其飞行路径中的碉堡。但是不能穿透墙。
你的任务就是在城市中放置尽可能多的碉堡,使其任意两个城堡之间不能相互射击到。正确的放置方案是:若两个碉堡之间没有墙隔断,没有两个碉堡在同一条水平线和垂直线上。
下面以一个4*4的城市框图为例:
以上共有5副图。第1幅图是空的框图,没放任何碉堡;第2、3幅图是正确的放置方案;第4、5幅图是错误的放置方法。对于这样的一个城市地图,所能放置的碉堡数最多是5。第2幅图就是一种放置方法,当然也有其它的放置方案。
你的任务就是给定一个城市的地图,计算出正确放置碉堡的最大数目。
输入
第一行整数n(n<=4),接下来n行数据表示城市的地图信息,其中‘.’表示空区域,‘X’表示墙
输出
所能放置碉堡的最大数目
样例输入 复制
4
.X..
....
XX..
....
样例输出 复制
5