No.3117 Reversible Tile
レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 42
作問者 :
kenken714
/ テスター :
ponjuice
Nzt3
Naru820
タグ : / 解いたユーザー数 42
作問者 :
問題文最終更新日: 2025-04-18 00:29:35
問題文
$N$ 枚の表裏が区別できるタイルがあり、タイル $1,2,...,N$ と呼びます。はじめタイルは全て表向きです。 これから次の操作を $M$ 回行います。
- $1 \leq L \leq R \leq N$ を満たす正の整数 $L,R$ を選び、タイル $i\,(L\leq i \leq R)$ を全てひっくり返す。
$i\,(1 \le i \le M)$ 回目の操作で選んだ $L, R$ をそれぞれ $L_i, R_i$ とします。
操作列 $((L_i, R_i))_{i = 1, \cdots, M}$ は $(\frac{N(N+1)}{2})^M$ 通りありますが、そのうち、操作を終えた後のタイルの状態が $A_1,A_2,...,A_N$ となる操作列の個数を $998244353$ で割ったあまりを求めてください。
ここで、 $A_i = 0$ のときタイル $i$ が表、 $A_i = 1$ のときタイル $i$ が裏であることを表します。
制約
- $1 \leq N \leq 5000$
- $0 \leq M \leq 5000$
- $0 \leq A_i \leq 1$
- 入力はすべて整数
入力
$N\ M\\A_1\ A_2 \cdots A_N$
出力
答えを $998244353$ で割ったあまりを出力してください。 最後に改行してください。
サンプル
サンプル1
入力
4 2 0 1 1 0
出力
6
タイルの状態を (表, 裏, 裏, 表) にする操作列 $((L_i, R_i))_{i = 1, 2}$ は以下の $6$ 通りです。
- $((1, 1), (1, 3))$
- $((1, 3), (1, 1))$
- $((2, 2), (3, 3))$
- $((2, 4), (4, 4))$
- $((3, 3), (2, 2))$
- $((4, 4), (2, 4))$
サンプル2
入力
1 56 1
出力
0
最終的にタイルが表になる操作列は存在しません。
サンプル3
入力
15 121 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1
出力
255247577
答えを $998244353$ で割ったあまりを出力してください。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。