No.2838 Diagonals
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 61
作問者 : milkcoffee / テスター : suo 👑 ygussany
タグ : / 解いたユーザー数 61
作問者 : milkcoffee / テスター : suo 👑 ygussany
問題文最終更新日: 2024-08-03 20:24:01
問題文
$N$ 行 $M$ 列のグリッドがあります。 グリッドの $i$ 行目 $j$ 列目を $(i,j)$ と呼ぶことにします。
$S_{i,j}$ が #
ならば $(i,j)$ にはマスがあり、.
ならば $(i,j)$ にはマスがありません。
また、各マスは正方形であり、異なるマス同士の境界は直線で区切られています。
あなたは全てのマスそれぞれについて、以下の $4$ つのうちいずれか $1$ つの操作を選びます。
- マスの左上と右下を結ぶ対角線を $1$ 本書く。
- マスの左下と右上を結ぶ対角線を $1$ 本書く。
- 上記の $2$ つの対角線をどちらも書く。
- 対角線を書かない。
操作後のマスは下図のいずれかのようになります。
マスの個数を $k$ 個として、グリッド全体に対する線の書き方は全部で $4^{k}$ 通りありますが、以下の条件を満たす線の書き方の数を $998244353$ で割ったあまりを求めて下さい。
- 【条件】線で囲われた図形それぞれを白または黒の $2$ 色で塗り、隣り合う(辺を共有する)図形と色が異なるように塗り分けることができる。
入力
$N$ $M$ $S_{1,1}S_{1,2}\ldots S_{1,M}$ $\vdots$ $S_{N,1}S_{N,2}\ldots S_{N,M}$
- $1 \leq N,M \leq 500$
- $N,M$ は整数
- $S_{i,j}$ は
#
または.
#
は $1$ つ以上存在する
出力
答えを整数で出力してください。
サンプル
サンプル1
入力
3 4 ###. .### .##.
出力
16384
入力で与えられるグリッドは左の図のようなマス目です。
例えば、中央の図のような対角線の書き方をすれば、右図のように白と黒で塗り分けることができるため、条件を満たします。
対角線の書き方は全部で $4^8 = 65536$ 通りですが、そのうち条件を満たすのは $16384$ 通りです。
サンプル2
入力
3 3 #.# .#. #.#
出力
1024
マスはいずれも隣接しません。そのため、$4^5 = 1024$ 通りの全ての書き方が条件を満たします。
サンプル3
入力
10 30 ####.####..#######.######.#.#. ###.##.#.##.##.##.######.##..# .#.#.#.#..######.....#..##.##. ##.#..#.###.###..#.###.####### ##.##.#####.####.#..##.#..#### ..#####..###########.##.##.##. ######..#...#####..###..##..## .###..#.##..#..###..#####...## ###..###########.#..##.#...### #.##.#####.####.####.####.###.
出力
993502162
答えを $998244353$ で割ったあまりを求めてください。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。