AT_agc003_f [AGC003F] Fraction of Fractal

题目描述

高桥君从妈妈那里得到了一张网格。这张网格由 $H$ 行 $W$ 列的格子组成,每个格子被涂成黑色或白色。所有黑色格子在纵横方向上是连通的。 第 $i$ 行第 $j$ 列 $(1 \leq i \leq H,\ 1 \leq j \leq W)$ 的格子的信息由字符 $s_{ij}$ 表示,$s_{ij}$ 为 `#` 时表示该格子为黑色,为 `.` 时表示该格子为白色。至少有一个格子是黑色。 “等级 $0$ 的分形”是指仅包含一个黑色格子的 $1 \times 1$ 网格。“等级 $k+1$ 的分形”是指,将等级 $k$ 的分形分别放置在妈妈给的网格中所有黑色格子对应的位置上,白色格子对应的位置用白色格子填充而成。 给定妈妈给的网格信息和整数 $K$,请你求出等级 $K$ 的分形中由黑色格子组成的连通分量的个数,并对 $10^9+7$ 取模输出。

输入格式

输入以以下格式从标准输入读入。 > $H$ $W$ $K$ > $s_{11}\ldots s_{1W}$ > $\vdots$ > $s_{H1}\ldots s_{HW}$

输出格式

输出等级 $K$ 的分形中黑色格子组成的连通分量的个数,对 $10^9+7$ 取模。

说明/提示

## 限制条件 - $1 \leq H, W \leq 1000$ - $0 \leq K \leq 10^{18}$ - $s_{ij}$ 只可能是 `#` 或 `.`。 - 所有 `#` 格子在纵横方向上是连通的。 - 至少存在一个 `#` 格子。 ## 样例解释 1 根据本输入样例构造出的分形如下。黑色格子的连通分量数为 $20$,因此输出 $20$。 ``` .............#............. ............###............ ............#.#............ ..........#..#..#.......... .........#########......... .........#.##.##.#......... ..........#.....#.......... .........###...###......... .........#.#...#.#......... ....#........#........#.... ...###......###......###... ...#.#......#.#......#.#... .#..#..#..#..#..#..#..#..#. ########################### #.##.##.##.##.##.##.##.##.# .#.....#..#.....#..#.....#. ###...######...######...### #.#...#.##.#...#.##.#...#.# ....#.................#.... ...###...............###... ...#.#...............#.#... .#..#..#...........#..#..#. #########.........######### #.##.##.#.........#.##.##.# .#.....#...........#.....#. ###...###.........###...### #.#...#.#.........#.#...#.# ``` 由 ChatGPT 4.1 翻译