10 编程实现:简单炸弹超人
题目描述
有一块矩形游戏场地,场地被分为N x M的网格(4<=N<=100,4<=M<=10),其中一部分小方格是水域,另一部分小方格是陆地。
为防御敌军攻击,玩家需要在游戏场地安置炸弹:
-
炸弹只能安置在陆地上;
-
每颗炸弹爆炸后,可以波及到炸弹所在的小方格,及相邻的上、下、左、右小方格;
-
任意两颗炸弹爆炸后不能波及到同一个小方格。
请帮助玩家计算出如何安置炸弹,可以使炸弹波及到的范围最大,输出最多可以波及到的小方格数量。
例如:N=4,M=4,网格中水域和陆地的情况如图1:
其中,蓝色区域代表水域,绿色区域代表陆地;安置炸弹的最优方案之一如图2;炸弹搏击的范围如图3(黑色区域)
这个块4X4的矩形游戏场最多可以波及到11个小方格,其他方案都不会优于这个结果。
输入描述
第一行输入两个正整数N和M(4<=N<=100,4<=M<=10),分别表示网格的行和列,两个数以一个空格隔开。
接下来输入N行,每行M个字符(大写的A或者B),A表示水域,B表示陆地,字符之间以空格隔开
输出描述
输出一个整数,表示最多可以波及到的小方格数量
样例输入:
4 4
B A A A
A B A B
B A B B
A B A A
样例输出:
11