atcoder#ARC136F. [ARC136F] Flip Cells

[ARC136F] Flip Cells

题目描述

H H W W 列からなる盤面があり,各マスには 01 が書き込まれています. 盤面の状態は H H 個の文字列 S1,S2,,SH S_1,S_2,\cdots,S_H で表され, Si S_i j j 文字目が,上から i i 行目,左から j j 列目のマスに書かれている数字を表します.

すぬけくんはこれから,次の操作を繰り返します.

  • 一つのマス目を一様ランダムに選ぶ. そして,そのマス目に書かれている値を flip する.(つまり,0 ならば 1 に変え,1 ならば 0 に変える)

ところで,すぬけ君は整数列 A=(A1,A2,,AH) A=(A_1,A_2,\cdots,A_H) が大好きです. そのため,以下の条件が満たされた瞬間,操作を終了します.

  • すべての i i (1  i  H 1\ \leq\ i\ \leq\ H ) について,i i 行目にある 1 の個数がちょうど Ai A_i である.

特に,操作を 0 0 回しか行わないこともありえます.

すぬけくんが行う操作回数の期待値を mod 998244353 \text{mod\ }{998244353} で求めてください.

期待値 mod 998244353 \text{mod\ }{998244353} の定義 求める期待値は必ず有理数になることが証明できます。 また、この問題の制約のもとでは、その値を既約分数 PQ \frac{P}{Q} で表した時、Q ̸  0 (mod998244353) Q\ \not\ \equiv\ 0\ \pmod{998244353} となることも証明できます。 よって、$ R\ \times\ Q\ \equiv\ P\ \pmod{998244353},\ 0\ \leq\ R\ &lt\ 998244353 $ を満たす整数 R R が一意に定まります。 この R R を答えてください。

输入格式

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

H H W W S1 S_1 S2 S_2 \vdots SH S_H A1 A_1 A2 A_2 \cdots AH A_H

输出格式

答えを出力せよ.

题目大意

有一个 hhww 列的棋盘,每个格子内都有一个为 0011 的数字。棋盘的初始状态由 hh 个长为 ww 的只包含 01 的字符串 S1,S2,,SnS_1, S_2, \dots, S_n 给定,SiS_i 的第 jj 个字符表示棋盘上从上往下第 ii 行、从左往右第 jj 列的数字。

给定长为 hh 的序列 a=(a1,a2,,an)a = (a_1, a_2, \dots, a_n),Sunke 会重复以下的操作直到对所有 ii 有从上往下第 ii 行中 11 的数量恰为 aia_i

  • 随机选择一个格子,翻转该格子中的数(11 变为 0000 变为 11)。

请求出 Snuke 执行操作次数的期望在模 998244353998244353 意义下的值。

1 2
01
0
3
3 3
000
100
110
0 1 2
0
2 2
00
01
1 0
332748127
5 4
1101
0000
0010
0100
1111
1 3 3 2 1
647836743

提示

制約

  • 1  H,W  50 1\ \leq\ H,W\ \leq\ 50
  • Si S_i 0, 1 からなる長さ W W の文字列
  • 0  Ai  W 0\ \leq\ A_i\ \leq\ W

Sample Explanation 1

操作の様子は以下のようになります. - 確率 1/2 1/2 1 の書かれたマスを flip する.1 1 行目にある 1 の個数が 0 0 になり,操作が終了する. - 確率 1/2 1/2 0 の書かれたマスを flip する.1 1 行目にある 1 の個数は 2 2 になり,操作は継続する. - いずれかのマスを flip する.flip したマスに依らず,1 1 行目にある 1 の個数は 1 1 になり,操作は継続する. - 確率 1/2 1/2 1 の書かれたマスを flip する.1 1 行目にある 1 の個数が 0 0 になり,操作が終了する. - 確率 1/2 1/2 0 の書かれたマスを flip する.1 1 行目にある 1 の個数は 2 2 になり,操作は継続する. - \vdots 操作回数の期待値は 3 3 になります.