#AGC030F. [AGC030F] Permutation and Minimum

[AGC030F] Permutation and Minimum

题目描述

長さ 2N 2N の数列 A1, A2, ..., A2N A_1,\ A_2,\ ...,\ A_{2N} があります. 各 Ai A_i 1 -1 か,あるいは 1 1 以上 2N 2N 以下の整数です. 1 -1 以外のどの整数も,Ai {A_i} の中には 1 1 回までしか現れません.

すぬけ君は,Ai = 1 A_i\ =\ -1 であるような i i それぞれに対して,Ai A_i 1 1 以上 2N 2N の整数で置き換えて,Ai {A_i} 1, 2, ..., 2N 1,\ 2,\ ...,\ 2N の並び替えになるようにします. そして,長さ N N の数列 B1, B2, ..., BN B_1,\ B_2,\ ...,\ B_N を,Bi = min(A2i1, A2i) B_i\ =\ min(A_{2i-1},\ A_{2i}) として求めます.

数列 B1, B2, ..., BN B_1,\ B_2,\ ...,\ B_N として考えられる異なるものの個数を 109 + 7 10^9\ +\ 7 で割ったあまりを求めてください.

输入格式

入力は以下の形式で標準入力から与えられる.

N N A1 A_1 A2 A_2 ... ... A2N A_{2N}

输出格式

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

题目大意

有一个 2N2 N 个数的序列 AA,从 112N2 N 标号。你要把 12N1 \sim 2 N 这些数填进去,使它形成一个排列。

但是已经有一些位置强制填了特定的数了,输入时会给出。

最后令长度为 NN 的序列 BB 为:令 Bi=min{A2i1,A2i}B_i = \min\{A_{2 i - 1}, A_{2 i}\}

询问所有方案中能得到的不同的 BB 的数量。

  • 1N3001 \le N \le 300
3
1 -1 -1 3 6 -1
5
4
7 1 8 3 5 2 6 4
1
10
7 -1 -1 -1 -1 -1 -1 6 14 12 13 -1 15 -1 -1 -1 -1 20 -1 -1
9540576
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
374984201

提示

制約

  • 1  N  300 1\ \leq\ N\ \leq\ 300
  • Ai = 1 A_i\ =\ -1 あるいは 1  Ai  2N 1\ \leq\ A_i\ \leq\ 2N
  • Ai  1, Aj  1 A_i\ \neq\ -1,\ A_j\ \neq\ -1 ならば Ai  Aj A_i\ \neq\ A_j (i  j i\ \neq\ j )

Sample Explanation 1

Ai {A_i} 1, 2, ..., 2N 1,\ 2,\ ...,\ 2N の並び替えにする方法は 6 6 通りありますが,そのそれぞれに対して Bi {B_i} は次のようになります: - $ (A_1,\ A_2,\ A_3,\ A_4,\ A_5,\ A_6)\ =\ (1,\ 2,\ 4,\ 3,\ 6,\ 5) $: (B1, B2, B3) = (1, 3, 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) $: (B1, B2, B3) = (1, 3, 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) $: (B1, B2, B3) = (1, 2, 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) $: (B1, B2, B3) = (1, 3, 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) $: (B1, B2, B3) = (1, 2, 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) $: (B1, B2, B3) = (1, 3, 2) (B_1,\ B_2,\ B_3)\ =\ (1,\ 3,\ 2) よって,異なる B1, B2, B3 B_1,\ B_2,\ B_3 5 5 個あります.