#P10945. Place the Robots

Place the Robots

Description

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

Input Format

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

Output Format

对于每个测试用例,首先输出一行,格式为:Case :id,其中 id\text{id} 是测试用例编号,从 11 开始计数。

第二行输出在该地图上可以放置的最大机器人数量。

2
4 4
o*** 
*### 
oo#o 
***o 
4 4 
#ooo 
o#oo 
oo#o 
***#
Case :1 
3
Case :2 
5

Hint

对于所有的数据,满足 T11T \leq 111m,n501 \leq m , n \leq 50