#abc472d. Bomber Mad
Bomber Mad
题目描述
有一个 行 列的网格。每个格子要么是空格子,要么是炸弹格。用 表示从上往下第 行、从左往右第 列的格子。
网格由 个长度为 的字符串 给出:若 的第 个字符是 .,则 是空格子;若是 #,则 是炸弹格。
对一个空格子 ,若第 行里没有炸弹格,且第 列里也没有炸弹格,就称它是安全空格子。
每一次移动,可以从当前格子走到上下左右相邻的一个空格子(不能走到炸弹格上)。请求出满足下列条件的空格子 的个数:
- 从 出发,经过不超过 次移动,能够到达某个安全空格子。
输入格式
H W K
S_1
S_2
...
S_H
输出格式
输出满足条件的空格子个数。
输入示例 1
3 3 1
#..
...
..#
输出示例 1
5
示例 1 说明
第 行和第 列都有炸弹,第 行和第 列也都有炸弹,所以唯一的安全空格子是 。
步以内能到达 的空格子有 共 个,答案为 。注意 自己算 步,也要计入。
输入示例 2
2 3 0
...
...
输出示例 2
6
示例 2 说明
没有炸弹格,所以 个格子全都是安全空格子。于是每个空格子都能用 次移动满足条件。这组数据用来检验 的边界:起点自己就是安全格时必须算进答案。
输入示例 3
5 7 2
..#....
..#....
.......
...#...
...#...
输出示例 3
29
示例 3 说明
有炸弹的行是第 行,有炸弹的列是第 列,因此安全空格子只能落在第 行且列号不属于 ,即 共 个。以这 个格子为起点做多源扩展, 步以内可达的空格子共 个。
约束条件
- 是由
.和#组成的长度为 的字符串 - 均为整数