问题2143--炮兵阵地(POJ1185)

2143: 炮兵阵地(POJ1185)

时间限制: 1 Sec  内存限制: 128 MB
提交: 1  解决: 1
[提交] [状态] [讨论版] [命题人:]

题目描述

将军打算在地图上部署炮兵部队。地图由N 行M 列组成,地图的每一格都可能是山地(用H表示),也可能是平原(用P表示)。在每一格平原上最多可以部署一支炮兵部队(在山地上不可以部署炮兵部队)。一支炮兵部队在地图上的攻击范围如下图中黑色区域所示。

如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。图上其它白色网格均攻击不到。从图上可见炮兵的攻击范围不受地形的影响。
现在,将军们规划如何部署炮兵部队,在防止误伤的前提下(保证任何两支炮兵部队之间不能互相攻击,即任何一支炮兵部队都不在其他支炮兵部队的攻击范围内),在整个地图区域内最多能够摆放多少我军的炮兵部队。

输入

第一行包含两个由空格分隔开的正整数,分别表示N和M(N ≤100,M ≤10)
接下来的N行,每一行含有连续的M个字符('P'或者'H'),中间没有空格。按顺序表示地图中每一行的数据。

输出

仅一行,包含一个整数K,表示最多能摆放的炮兵部队的数量。

样例输入 Copy

5 4
PHPP
PPHH
PPPP
PHPP
PHHP

样例输出 Copy

6

来源/分类