[AGC030F] Permutation and Minimum

题意翻译

有一个 $2 N$ 个数的序列 $A$,从 $1$ 到 $2 N$ 标号。你要把 $1 \sim 2 N$ 这些数填进去,使它形成一个排列。 但是已经有一些位置强制填了特定的数了,输入时会给出。 最后令长度为 $N$ 的序列 $B$ 为:令 $B_i = \min\{A_{2 i - 1}, A_{2 i}\}$。 询问所有方案中能得到的不同的 $B$ 的数量。 - $1 \le N \le 300$。

题目描述

[problemUrl]: https://atcoder.jp/contests/agc030/tasks/agc030_f 長さ $ 2N $ の数列 $ A_1,\ A_2,\ ...,\ A_{2N} $ があります. 各 $ A_i $ は $ -1 $ か,あるいは $ 1 $ 以上 $ 2N $ 以下の整数です. $ -1 $ 以外のどの整数も,$ {A_i} $ の中には $ 1 $ 回までしか現れません. すぬけ君は,$ A_i\ =\ -1 $ であるような $ i $ それぞれに対して,$ A_i $ を $ 1 $ 以上 $ 2N $ の整数で置き換えて,$ {A_i} $ が $ 1,\ 2,\ ...,\ 2N $ の並び替えになるようにします. そして,長さ $ N $ の数列 $ B_1,\ B_2,\ ...,\ B_N $ を,$ B_i\ =\ min(A_{2i-1},\ A_{2i}) $ として求めます. 数列 $ B_1,\ B_2,\ ...,\ B_N $ として考えられる異なるものの個数を $ 10^9\ +\ 7 $ で割ったあまりを求めてください.

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる. > $ N $ $ A_1 $ $ A_2 $ $ ... $ $ A_{2N} $

输出格式


数列 $ B_1,\ B_2,\ ...,\ B_N $ として考えられる異なるものの個数を $ 10^9\ +\ 7 $ で割ったあまりを出力せよ.

输入输出样例

输入样例 #1

3
1 -1 -1 3 6 -1

输出样例 #1

5

输入样例 #2

4
7 1 8 3 5 2 6 4

输出样例 #2

1

输入样例 #3

10
7 -1 -1 -1 -1 -1 -1 6 14 12 13 -1 15 -1 -1 -1 -1 20 -1 -1

输出样例 #3

9540576

输入样例 #4

20
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 6 -1 -1 -1 -1 -1 7 -1 -1 -1 -1 -1 -1 -1 -1 -1 34 -1 -1 -1 -1 31 -1 -1 -1 -1 -1 -1 -1 -1

输出样例 #4

374984201

说明

### 制約 - $ 1\ \leq\ N\ \leq\ 300 $ - $ A_i\ =\ -1 $ あるいは $ 1\ \leq\ A_i\ \leq\ 2N $ - $ A_i\ \neq\ -1,\ A_j\ \neq\ -1 $ ならば $ A_i\ \neq\ A_j $ ($ i\ \neq\ j $) ### Sample Explanation 1 $ {A_i} $ を $ 1,\ 2,\ ...,\ 2N $ の並び替えにする方法は $ 6 $ 通りありますが,そのそれぞれに対して $ {B_i} $ は次のようになります: - $ (A_1,\ A_2,\ A_3,\ A_4,\ A_5,\ A_6)\ =\ (1,\ 2,\ 4,\ 3,\ 6,\ 5) $: $ (B_1,\ B_2,\ B_3)\ =\ (1,\ 3,\ 5) $ - $ (A_1,\ A_2,\ A_3,\ A_4,\ A_5,\ A_6)\ =\ (1,\ 2,\ 5,\ 3,\ 6,\ 4) $: $ (B_1,\ B_2,\ B_3)\ =\ (1,\ 3,\ 4) $ - $ (A_1,\ A_2,\ A_3,\ A_4,\ A_5,\ A_6)\ =\ (1,\ 4,\ 2,\ 3,\ 6,\ 5) $: $ (B_1,\ B_2,\ B_3)\ =\ (1,\ 2,\ 5) $ - $ (A_1,\ A_2,\ A_3,\ A_4,\ A_5,\ A_6)\ =\ (1,\ 4,\ 5,\ 3,\ 6,\ 2) $: $ (B_1,\ B_2,\ B_3)\ =\ (1,\ 3,\ 2) $ - $ (A_1,\ A_2,\ A_3,\ A_4,\ A_5,\ A_6)\ =\ (1,\ 5,\ 2,\ 3,\ 6,\ 4) $: $ (B_1,\ B_2,\ B_3)\ =\ (1,\ 2,\ 4) $ - $ (A_1,\ A_2,\ A_3,\ A_4,\ A_5,\ A_6)\ =\ (1,\ 5,\ 4,\ 3,\ 6,\ 2) $: $ (B_1,\ B_2,\ B_3)\ =\ (1,\ 3,\ 2) $ よって,異なる $ B_1,\ B_2,\ B_3 $ は $ 5 $ 個あります.