CF1946E Girl Permutation

题目描述

猜测了一个长度为 $n$ 的排列。 你得到了它的前缀最大值和后缀最大值的下标。 回忆一下,长度为 $k$ 的排列是一个大小为 $k$ 的数组,其中每个整数 $1$ 到 $k$ 恰好出现一次。 前缀最大值是指在以该元素结尾的前缀中最大的元素。更正式地说,若 $a_i > a_j$ 对于所有 $j < i$,则元素 $a_i$ 是前缀最大值。 同理,后缀最大值的定义是:若 $a_i > a_j$ 对于所有 $j > i$,则元素 $a_i$ 是后缀最大值。 你需要输出可能被猜测的不同排列的数量。 由于答案可能非常大,请输出答案对 $10^9 + 7$ 取模后的结果。

输入格式

每组测试数据包含若干组测试用例。第一行包含一个整数 $t$($1 \le t \le 10^4$)——测试用例的数量。接下来是每组测试用例的描述。 每组测试用例的第一行包含三个整数 $n, m_1, m_2$($1 \le m_1, m_2 \le n \le 2 \cdot 10^5$)——排列的长度、前缀最大值的数量和后缀最大值的数量。 每组测试用例的第二行包含 $m_1$ 个递增的整数 $p_1 < p_2 < \ldots < p_{m_1}$($1 \le p_i \le n$)——前缀最大值的下标。 每组测试用例的第三行包含 $m_2$ 个递增的整数 $s_1 < s_2 < \ldots < s_{m_2}$($1 \le s_i \le n$)——后缀最大值的下标。 保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每组测试用例,输出一个整数,表示满足条件的排列数量,对 $10^9 + 7$ 取模。每个答案占一行。

说明/提示

对于第二组输入数据,满足条件的排列有: - $[1, 4, 3, 2]$ - $[2, 4, 3, 1]$ - $[3, 4, 2, 1]$ 对于第六组输入数据,满足条件的排列有: - $[2, 1, 6, 5, 3, 4]$ - $[3, 1, 6, 5, 2, 4]$ - $[3, 2, 6, 5, 1, 4]$ - $[4, 1, 6, 5, 2, 3]$ - $[4, 2, 6, 5, 1, 3]$ - $[4, 3, 6, 5, 1, 2]$ - $[5, 1, 6, 4, 2, 3]$ - $[5, 2, 6, 4, 1, 3]$ - $[5, 3, 6, 4, 1, 2]$ - $[5, 4, 6, 3, 1, 2]$ 由 ChatGPT 4.1 翻译