#P6457. Zju1654 Place the Robots/[HEOI2016/TJOI2016] 游戏

Zju1654 Place the Robots/[HEOI2016/TJOI2016] 游戏

题目描述

罗伯特是一位著名的工程师。一天,他的老板给了他一个任务。任务的背景如下:给定一个方格地图。地图上有三种可以放置的方块:墙方块、草方块和空地。老板希望在地图上可以尽可能多地放置机器人。每个机器人都配备了激光武器,可以同时向四个方向(东南西北,可以理解为上下左右)发射激光。机器人必须待在同一位置(也就是一开始放置的位置)且只能放在空地上不断地发射激光。激光束可以穿过草方块,但不能穿过墙方块。显然,老板不希望看到一个机器人伤害另一个机器人。换句话说,两个机器人不能放置在同一行或同一列上,除非它们之间有一堵墙。作为罗伯特的好朋友和聪明的程序员,他请你帮忙解决这个问题。也就是请你根据给定地图的描述,计算在地图上可以放置的最大机器人数量。

输入格式

第一行包含一个整数 TT,表示测试用例的数量。对于每个测试用例,第一行包含两个整数 mmnn ,分别表示地图的行数和列数。接下来是 mm 行,每行包含 nn 个字符,分别是 '#','*',或 'o',表示墙方块、草方块和空地。

输出格式

对于每个测试用例,首先输出一行,格式为:Case :id,其中 idid 是测试用例编号,从 11 开始计数。第二行输出在该地图上可以放置的最大机器人数量。

输入输出样例 #1

输入 #1

2
4 4
o*** 
*### 
oo#o 
***o 
4 4 
#ooo 
o#oo 
oo#o 
***#

输出 #1

Case :1 
3
Case :2 
5

说明/提示

T11T \leq 111m,n501 \leq m , n \leq 50