F - Fraction of Fractal 解説 /

実行時間制限: 2 sec / メモリ制限: 256 MB

配点 : 17001700

問題文

高橋君はお母さんからグリッドをもらいました。このグリッドは縦 HH マス×横 WW マスからなり、各マスは黒か白で塗られています。 黒いマス全体は、縦横にひとつながりになっています。

このグリッドの iijj(1iH,1jW)(1 ≦ i ≦ H, 1 ≦ j ≦ W) のマスの情報は、縦横に並んだ文字 sijs_{ij} であらわされ、 sijs_{ij}# のときこのマスが黒く、 . のとき白く塗られていることを表します。少なくともひとつのマスが黒く塗られています。

レベル 00 のフラクタルとは黒いマスひとつからなる 1×11 × 1 のグリッドであり、 レベル k+1k+1 のフラクタルとは、レベル kk のフラクタルを、お母さんからもらったグリッドの全ての黒いマスに相当する位置に並べ、白いマスに相当する位置は白いマスで埋めたものを指します。

お母さんからもらったグリッドの情報と整数 KK が与えられるので、レベル KK のフラクタルに黒いマスからなる連結成分がいくつあるかを 109+710^9+7 で割ったあまりを求めてください。

制約

  • 1H,W10001 ≦ H,W ≦ 1000
  • 0K10180 ≦ K ≦ 10^{18}
  • sijs_{ij}#. のいずれかである。
  • # のマス全体は縦横に連結である。
  • # のマスは少なくともひとつ存在する。

入力

入力は以下の形式で標準入力から与えられる。

HH WW KK
s11..s1Ws_{11} .. s_{1W}
:
sH1..sHWs_{H1} .. s_{HW}

出力

レベル KK のフラクタルにある黒いマスからなる連結成分の個数を 109+710^9+7 で割ったあまりを一行に出力せよ。


入力例 1Copy

Copy
3 3 3
.#.
###
#.#

出力例 1Copy

Copy
20

この入力例で作られるフラクタルは、以下のようなものです。この黒マスからなる連結成分の数は 2020 なので、2020 を出力します。

.............#.............
............###............
............#.#............
..........#..#..#..........
.........#########.........
.........#.##.##.#.........
..........#.....#..........
.........###...###.........
.........#.#...#.#.........
....#........#........#....
...###......###......###...
...#.#......#.#......#.#...
.#..#..#..#..#..#..#..#..#.
###########################
#.##.##.##.##.##.##.##.##.#
.#.....#..#.....#..#.....#.
###...######...######...###
#.#...#.##.#...#.##.#...#.#
....#.................#....
...###...............###...
...#.#...............#.#...
.#..#..#...........#..#..#.
#########.........#########
#.##.##.#.........#.##.##.#
.#.....#...........#.....#.
###...###.........###...###
#.#...#.#.........#.#...#.#

入力例 2Copy

Copy
3 3 3
###
#.#
###

出力例 2Copy

Copy
1

入力例 3Copy

Copy
11 15 1000000000000000000
.....#.........
....###........
....####.......
...######......
...#######.....
..##.###.##....
..##########...
.###.....####..
.####...######.
###############
#.##..##..##..#

出力例 3Copy

Copy
301811921

Score : 17001700 points

Problem Statement

Snuke got a grid from his mother, as a birthday present. The grid has HH rows and WW columns. Each cell is painted black or white. All black cells are 4-connected, that is, it is possible to traverse from any black cell to any other black cell by just visiting black cells, where it is only allowed to move horizontally or vertically.

The color of the cell at the ii-th row and jj-th column (1iH,1jW)(1 ≦ i ≦ H, 1 ≦ j ≦ W) is represented by a character sijs_{ij}. If sijs_{ij} is #, the cell is painted black. If sijs_{ij} is ., the cell is painted white. At least one cell is painted black.

We will define fractals as follows. The fractal of level 00 is a 1×11 × 1 grid with a black cell. The fractal of level k+1k+1 is obtained by arranging smaller grids in HH rows and WW columns, following the pattern of the Snuke's grid. At a position that corresponds to a black cell in the Snuke's grid, a copy of the fractal of level kk is placed. At a position that corresponds to a white cell in the Snuke's grid, a grid whose cells are all white, with the same dimensions as the fractal of level kk, is placed.

You are given the description of the Snuke's grid, and an integer KK. Find the number of connected components of black cells in the fractal of level KK, modulo 109+710^9+7.

Constraints

  • 1H,W10001 ≦ H,W ≦ 1000
  • 0K10180 ≦ K ≦ 10^{18}
  • Each sijs_{ij} is either # or ..
  • All black cells in the given grid are 4-connected.
  • There is at least one black cell in the given grid.

Input

The input is given from Standard Input in the following format:

HH WW KK
s11..s1Ws_{11} .. s_{1W}
:
sH1..sHWs_{H1} .. s_{HW}

Output

Print the number of connected components of black cells in the fractal of level KK, modulo 109+710^9+7.


Sample Input 1Copy

Copy
3 3 3
.#.
###
#.#

Sample Output 1Copy

Copy
20

The fractal of level K=3K=3 in this case is shown below. There are 2020 connected components of black cells.

.............#.............
............###............
............#.#............
..........#..#..#..........
.........#########.........
.........#.##.##.#.........
..........#.....#..........
.........###...###.........
.........#.#...#.#.........
....#........#........#....
...###......###......###...
...#.#......#.#......#.#...
.#..#..#..#..#..#..#..#..#.
###########################
#.##.##.##.##.##.##.##.##.#
.#.....#..#.....#..#.....#.
###...######...######...###
#.#...#.##.#...#.##.#...#.#
....#.................#....
...###...............###...
...#.#...............#.#...
.#..#..#...........#..#..#.
#########.........#########
#.##.##.#.........#.##.##.#
.#.....#...........#.....#.
###...###.........###...###
#.#...#.#.........#.#...#.#

Sample Input 2Copy

Copy
3 3 3
###
#.#
###

Sample Output 2Copy

Copy
1

Sample Input 3Copy

Copy
11 15 1000000000000000000
.....#.........
....###........
....####.......
...######......
...#######.....
..##.###.##....
..##########...
.###.....####..
.####...######.
###############
#.##..##..##..#

Sample Output 3Copy

Copy
301811921


2025-03-15 (土)
23:40:50 +00:00