[AGC021F] Trinity
题意翻译
- 现有一个 $N$ 行 $M$ 列的、仅包含黑白格的表格,左上为 $(1, 1)$,右下为 $(N, M)$。
- 对于一个表格,设长度为 $N$ 的数列 $A$,长度为 $M$ 的数列 $B$、$C$ 分别表示:
- $A_i$ 表示第 $i$ 行第一个黑格的列号。若不存在则为 $M+1$。
- $B_i$ 表示第 $i$ 列第一个黑格的行号。若不存在则为 $N+1$。
- $C_i$ 表示第 $i$ 列最后一个黑格的行号。若不存在则为 $0$。
- 现请你求出所有的 $2^{NM}$ 种表格中,不同的数列三元组 $(A,B,C)$ 的个数对 $998244353$ 取模的结果。
- $1 \leq N \leq 8 \times 10^3$,$1 \leq M \leq 200$。
题目描述
[problemUrl]: https://atcoder.jp/contests/agc021/tasks/agc021_f
縦 $ N $ マス、横 $ M $ マスのマス目があります。$ i $ 行目、$ j $ 列目にあるマスを $ (i,j) $ とあらわすことにします。 特に、一番左上のマスは $ (1,1) $ と、一番右下のマスは $ (N,M) $ とあらわされます。 高橋君は $ 0 $ 個以上のいくつかのマスを黒く、他のマスを白く塗りました。
長さ $ N $ の数列 $ A $ と、長さ $ M $ の数列 $ B,C $ をそれぞれ以下のように定義するとき、列の組 $ (A,B,C) $ としてありうるものの個数を $ 998244353 $ で割った余りを求めてください。
- $ A_i(1\leq\ i\leq\ N) $ は、マス $ (i,j) $ が黒く塗られているような最小の $ j $ (存在しない場合、$ M+1 $)
- $ B_i(1\leq\ i\leq\ M) $ は、マス $ (k,i) $ が黒く塗られているような最小の $ k $ (存在しない場合、$ N+1 $)
- $ C_i(1\leq\ i\leq\ M) $ は、マス $ (k,i) $ が黒く塗られているような最大の $ k $ (存在しない場合、$ 0 $)
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $
输出格式
列の組 $ (A,B,C) $ の個数を $ 998244353 $ で割った余りを出力せよ。
输入输出样例
输入样例 #1
2 3
输出样例 #1
64
输入样例 #2
4 3
输出样例 #2
2588
输入样例 #3
17 13
输出样例 #3
229876268
输入样例 #4
5000 100
输出样例 #4
57613837
说明
### 注意
この問題では、提出できるソースコードのサイズは $ 20000 $ B 以下に制限される。 制限を超える長さの提出は無効とするので注意すること。
### 制約
- $ 1\ \leq\ N\ \leq\ 8000 $
- $ 1\ \leq\ M\ \leq\ 200 $
- $ N,M $ は整数である
### 部分点
- $ N\leq\ 300 $ を満たすデータセットに正解すると、$ 1500 $ 点が与えられる。
### Sample Explanation 1
$ N=2 $ なので、$ B_i,C_i $ の情報から、各列の黒く塗られたマスの配置が一意に定まります。各 $ i $ について、$ (B_i,C_i) $ の組は $ (1,1),(1,2),(2,2),(3,0) $ の $ 4 $ 通りなので、答えは $ 4^M=64 $ 通りです。