023 - Avoid War(★7)
Editorial
/
Time Limit: 8 sec / Memory Limit: 2048 MB
配点: 7 点
問題文
縦 H マス、横 W マスからなるグリッドがあり、上から i 行目・左から j 列目のマスを (i,j) で表します。
各マスには色が塗られており、マス (i,j) の色は C_{i,j} が #
のとき黒、C_{i,j} が .
のとき白です。
あなたはいくつかの白マスを選び(1 つも選ばなくても良い)、キングの駒を置きます。 キング同士が互いに攻撃し合わない(後述)ような置き方の数を、10^9+7 で割った余りを求めてください。
ただし、ある 2 つの置き方が異なるとは、 「ある白マスが存在して、片方ではキングが置かれており、もう片方では置かれていない」 ことを言います。
「キング同士が互いに攻撃し合わない」とは
キングが置かれている任意の異なる 2 マス (i,j) および (k,l) において、 |i-k|>1 または |j-l|>1 が成り立つことを言います。制約
- 1 \leq H,W \leq 24
- H,W は整数
- C_{i,j} は
#
または.
- 少なくとも 1 つの白マスが存在する
小課題
- (1 点) 1 \leq H,W \leq 4
- (1 点) 1 \leq H,W \leq 9
- (2 点) 1 \leq H,W \leq 17
- (3 点) 追加の制約はない。
入力
入力は以下の形式で標準入力から与えられます。
H W C_{1,1}\cdots C_{1,W} \vdots C_{H,1}\cdots C_{H,W}
出力
条件を満たす置き方の数を、10^9+7 で割った余りを出力してください。
入力例 1
1 3 ...
出力例 1
5
以下の 5 通りがあります。( o
はキングを置いたマスを表します。)
... o.. .o. ..o o.o
これは小課題 1,2,3,4 の制約を満たします。
入力例 2
3 3 .#. #.. .##
出力例 2
13
以下の 13 通りがあります。( o
はキングを置いたマスを表します。)
.#. o#. .#o .#. .#. .#. o#o #.. #.. #.. #o. #.o #.. #.. .## .## .## .## .## o## .## o#. o#. .#o .#. o#o o#. #.o #.. #.. #.o #.. #.o .## o## o## o## o## o##
これは小課題 1,2,3,4 の制約を満たします。
入力例 3
8 9 ######.## ####..##. ..#...#.. ###...### #....##.# .##...... #.####..# #.#######
出力例 3
273768
これは小課題 2,3,4 の制約を満たします。
入力例 4
17 17 .####...#.....#.# .#....#.#####...# #...##.##...#..## ..#..####..#...## .#..#..#.#.##...# .#.#.#...#.##..#. #...#..#..##..### ###.#..###..###.. ...#.##.##.#....# ..####....#.#...# .##...##.#.#...#. ..########...###. #..##....#....... ##.##..###.#.##.. .##....#........# ....#####..##.#.. .###...##..##.#..
出力例 4
314465173
10^9+7 で割った余りを出力してください。
これは小課題 3,4 の制約を満たします。
入力例 5
22 18 .##.##.#.#.#...##. ####.#..###.#.#..# #####.##...##.###. ...#.#.#.##.##.### ..#.##.#.#....#... #.###.##....###..# ....#####...#...#. .#..##..#..###.... ....#..##.#.#..#.# ###.#.....#..##.#. #..#..#.#.##..###. #...#....##..###.. ..#...#..###..##.. .#....#.#.#..###.# ##.#.#..#..###..## ....###.##.##.##.. #...####.#.#..##.. ..#.###.###.###.## #...##.#.#.#...#.# #..###..########.. #.##.#####.#..#.## #..#........#...#.
出力例 5
47296634
これは小課題 4 の制約を満たします。