Matching

题意翻译

给定二分图,两个集合都有 $N$ 个点,$a_{i,j}=1$ 表示第一个集合第 $i$ 个点与第二个集合第 $j$ 个点连边。 求二分图完备匹配数,答案对 $10^9+7$ 取模。

题目描述

[problemUrl]: https://atcoder.jp/contests/dp/tasks/dp_o $ N $ 人の男性たちと $ N $ 人の女性たちがいます。 男性たちには $ 1,\ 2,\ \ldots,\ N $ と番号が振られています。 同様に、女性たちには $ 1,\ 2,\ \ldots,\ N $ と番号が振られています。 各 $ i,\ j $ ($ 1\ \leq\ i,\ j\ \leq\ N $) について、男性 $ i $ と女性 $ j $ の相性の良し悪しが整数 $ a_{i,\ j} $ によって与えられます。 $ a_{i,\ j}\ =\ 1 $ ならば男性 $ i $ と女性 $ j $ は相性が良く、$ a_{i,\ j}\ =\ 0 $ ならば相性が悪いです。 太郎君は、相性が良い男女どうしのペアを $ N $ 組作ろうとしています。 このとき、各男性および各女性はちょうど $ 1 $ つのペアに属さなければなりません。 $ N $ 組のペアを作る方法は何通りでしょうか? $ 10^9\ +\ 7 $ で割った余りを求めてください。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ N $ $ a_{1,\ 1} $ $ \ldots $ $ a_{1,\ N} $ $ : $ $ a_{N,\ 1} $ $ \ldots $ $ a_{N,\ N} $

输出格式


$ N $ 組のペアを作る方法は何通りか? $ 10^9\ +\ 7 $ で割った余りを出力せよ。

输入输出样例

输入样例 #1

3
0 1 1
1 0 1
1 1 1

输出样例 #1

3

输入样例 #2

4
0 1 0 0
0 0 0 1
1 0 0 0
0 0 1 0

输出样例 #2

1

输入样例 #3

1
0

输出样例 #3

0

输入样例 #4

21
0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 1
1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0
0 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1
0 1 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0
1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0
0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1
0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0
0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1
0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1
0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1
0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0
0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 1
0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1
1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1
0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1
1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1
0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1
0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0
1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0
1 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0

输出样例 #4

102515160

说明

### 制約 - 入力はすべて整数である。 - $ 1\ \leq\ N\ \leq\ 21 $ - $ a_{i,\ j} $ は $ 0 $ または $ 1 $ である。 ### Sample Explanation 1 ペアを作る方法は次の $ 3 $ 通りです。 男性 $ i $ と女性 $ j $ のペアを $ (i,\ j) $ で表します。 - $ (1,\ 2),\ (2,\ 1),\ (3,\ 3) $ - $ (1,\ 2),\ (2,\ 3),\ (3,\ 1) $ - $ (1,\ 3),\ (2,\ 1),\ (3,\ 2) $ ### Sample Explanation 2 ペアを作る方法は次の $ 1 $ 通りです。 - $ (1,\ 2),\ (2,\ 4),\ (3,\ 1),\ (4,\ 3) $ ### Sample Explanation 4 答えを $ 10^9\ +\ 7 $ で割った余りを出力することを忘れずに。