3740 - 炮兵阵地
描述
司令部的将军们打算在 N*N 的网格地图上部署他们的炮兵部队。一个 N*N 的地图由 N 行 N 列组成,地图的每一格可能是山地(用"X"表示),也可能是平原(用"."表示)。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围是它所在位置的对应的行和列,但是大炮打出去之后如果被山地阻挡了,那么攻击范围就到那块山地。

现在,将军们规划如何部署炮兵部队,在防止误伤的前提下(保证任何两支炮兵部队之间不能互相攻击,即任何一支炮兵部队都不在其他支炮兵部队的攻击范围内),在整个地图区域内最多能够摆放多少我军的炮兵部队。
输入
单组测试数据。

第一行有一个整数 N(1 <= N <= 4)。

接下来 N 行,每行有 N 个字符(只有两种字符:'.' 表示平原,'X' 表示山地)。
输出
输出一个整数表示答案。
样例

输入

4
.X..
....
XX..
....

输出

5
提示
由于 N <= 4,平原格子最多只有 16 个,可以直接枚举所有放置方案(或回溯搜索),逐个检查是否存在互相攻击的两门炮。

两门炮会互相攻击,当且仅当它们在同一行或同一列,并且它们之间没有任何山地阻挡。
来源
51nod 1919
标签
题目参数
Time Limit 1 second
Memory Limit 128 MB
提交次数 1
通过次数 1