#ABC472D. 疯狂炸弹 / Bomber Mad

疯狂炸弹 / Bomber Mad

题目描述

有一个 HHWW 列的网格。每个格子都是空格或炸弹格。用 (i,j)(i,j) 表示从上往下数第 ii 行、从左往右数第 jj 列的格子。网格由 HH 个长度为 WW 的字符串 S1,S2,,SHS_1, S_2 , \dots ,S_H 给出:若 SiS_i 的第 jj 个字符是 .,则 (i,j)(i,j) 是空格;若是 #,则 (i,j)(i,j) 是炸弹格。

对于一个空格 (i,j)(i,j),如果第 ii 行和第 jj 列中都不存在炸弹格,则称该格子为安全空格

一次移动中,你可以从当前格子向上、下、左、右四个方向移动到相邻的空格(不能移动到炸弹格)。请求出满足下列条件的空格 (i,j)(i, j) 的数量:

  • (i,j)(i,j) 出发,至多移动 KK 次可以到达某个安全空格

输入格式

输入从标准输入读入,格式如下:

  • HH WW KK
  • S1S_1
  • S2S_2
  • \vdots
  • SHS_H

输出格式

输出满足条件的空格数量。

数据范围

  • 1H,W5×1051 \le H,W \le 5\times 10^5
  • H×W5×105H\times W \le 5\times 10^5
  • 0KH×W10 \le K \le H\times W-1
  • SiS_i 是仅由 .# 组成的长度为 WW 的字符串。
  • HHWWKK 均为整数。
3 3 1
#..
...
..#
5

唯一的安全空格(2,2)(2,2)。从 (1,2),(2,1),(2,2),(2,3),(3,2)(1,2),(2,1),(2,2),(2,3),(3,2) 这五个空格出发,都可以在至多一次移动内到达 (2,2)(2,2),因此答案为 55

2 3 0
...
...
6

由于不存在炸弹格,全部六个格子都是安全空格。因此每个空格都在移动零次的情况下满足条件。

5 7 2
..#....
..#....
.......
...#...
...#...
29

子任务设置

  • 子任务 1(30%30\%):H×W2000H\times W \le 2000
  • 子任务 2(70%70\%):无特殊限制。