|
||||||||||
Permutation CountingTime Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 882 Accepted Submission(s): 460 Problem Description For a given permutation $a_1, a_2, \cdots, a_n$ of length $n$, we defined the neighbor sequence $b$ of $a$, the length of which is $n - 1$, as following: $$ \begin{equation} b_i= \begin{cases} 0 & a_i < a_{i + 1}\\ 1 & a_i > a_{i + 1} \end{cases} \end{equation} $$. For example, the neighbor sequence of permutation $1, 2, 3, 6, 4, 5$ is $0, 0, 0, 1, 0$. Now we give you an integer $n$ and a sequence $b_1, b_2, \cdots, b_{n - 1}$ of length $n - 1$, you should calculate the number of permutations of length $n$ whose neighbor sequence equals to $b$. To avoid calculation of big number, you should output the answer module $10^9 + 7$. Input The first line contains one positive integer $T$ ($1\le T \le 50$), denoting the number of test cases. For each test case: The first line of the input contains one integer $n, (2 \le n \le 5000)$. The second line of the input contains $n - 1$ integer: $b_1, b_2, \cdots, b_{n - 1}$ There are no more than $20$ cases with $n > 300$. Output For each test case: Output one integer indicating the answer module $10^9 + 7$. Sample Input
Sample Output
Source | ||||||||||
|