atcoder#AGC057E. [AGC057E] RowCol/ColRow Sort
[AGC057E] RowCol/ColRow Sort
题目描述
行列 () に対して、次の操作を考えます。
- 行ソート:すべての行を昇順にソートする。つまり、すべての に対して を昇順にソートする。
- 列ソート:すべての列を昇順にソートする。つまり、すべての に対して を昇順にソートする。
行列 が与えられます。次の 条件をともに満たす 行列 の総数を で割った余りを求めてください。
- に対して行ソート、列ソートをこの順に行った結果は に一致する。
- に対して列ソート、行ソートをこの順に行った結果は に一致する。
输入格式
入力は以下の形式で標準入力から与えられます。
输出格式
条件を満たす行列 の総数を で割った余りを出力してください。
题目大意
给定一个 ,值域 的矩阵 ,请你计数有多少个大小相同的矩阵 满足下列条件:
- 分别对 的 每一列 中元素从小到大排序,再分别对 的 每一行 中元素从小到大排序能够得到 。
- 分别对 的 每一行 中元素从小到大排序,再分别对 的 每一列 中元素从小到大排序能够得到 。
,答案对 998244353 取模。
2 2
0 0
1 2
4
3 3
0 1 3
2 4 7
5 6 8
576
3 5
0 0 0 1 1
0 0 1 1 2
0 1 1 2 2
10440
1 7
2 3 3 6 8 8 9
1260
提示
制約
- 任意の および に対して
- 任意の および に対して
- 入力される値はすべて整数
Sample Explanation 1
条件を満たす行列は次の つです:, , , . 例えば、 が条件を満たすことは次のように確かめられます。 - 行ソート、列ソートをこの順に行う場合:$ \begin{pmatrix}2&1\\0&0\end{pmatrix}\to\ \begin{pmatrix}1&2\\0&0\end{pmatrix}\ \to\ \begin{pmatrix}0&0\\1&2\end{pmatrix} $. - 列ソート、行ソートをこの順に行う場合:$ \begin{pmatrix}2&1\\0&0\end{pmatrix}\to\ \begin{pmatrix}0&0\\2&1\end{pmatrix}\ \to\ \begin{pmatrix}0&0\\1&2\end{pmatrix} $.
Sample Explanation 2
例えば $ \begin{pmatrix}5&7&6\\3&0&1\\4&8&2\end{pmatrix} $ が条件を満たします。このことは次のように確かめられます。 - 行ソート、列ソートをこの順に行う場合:$ \begin{pmatrix}5&7&6\\3&0&1\\4&8&2\end{pmatrix}\to\ \begin{pmatrix}5&6&7\\0&1&3\\2&4&8\end{pmatrix}\ \to\ \begin{pmatrix}0&1&3\\2&4&7\\5&6&8\end{pmatrix} $. - 列ソート、行ソートをこの順に行う場合:$ \begin{pmatrix}5&7&6\\3&0&1\\4&8&2\end{pmatrix}\to\ \begin{pmatrix}3&0&1\\4&7&2\\5&8&6\end{pmatrix}\ \to\ \begin{pmatrix}0&1&3\\2&4&7\\5&6&8\end{pmatrix} $.