CF2159C Twin Polynomials
Description
A polynomial $ f(x) = a_0 + a_1x + a_2x^2 + \ldots + a_nx^n $ is called a valid polynomial of degree $ n $ if and only if $ a_i $ is a non-negative integer for all $ 0 \le i \le n $ and $ a_n $ is not $ 0 $ .
For a valid polynomial $ f(x) = a_0 + a_1x + a_2x^2 + \ldots + a_nx^n $ of degree $ n $ , its twin polynomial $ g(x) $ is defined as: $$$
g(x) = \sum_{i=0}^n i \cdot x^{a_i}
$$$ For example, for $ f(x) = 1 + 2x + 2x^3 $ , its twin polynomial is:
$$$
g(x) = 0 \cdot x^{1} + 1 \cdot x^{2} + 2 \cdot x^{0} + 3 \cdot x^{2} = 0+x^2+2+3x^2= 2 + 4x^2
$$$
A valid polynomial $ f(x) $ of degree $ n $ is called cool if and only if $ f(x) = g(x) $ . In other words, a valid polynomial of degree $ n $ is cool if and only if its twin polynomial equals itself.
You are given an incomplete valid polynomial $ f(x) = a_0 + a_1x + a_2x^2 + \ldots + a_nx^n $ of degree $ n $ . Some of $ a_i $ have been determined, while others have not been determined. Additionally, it is guaranteed that $ a_0 $ and $ a_n $ are not determined.
Please count the number of cool valid polynomials of degree $ n $ that can be found by determining all undetermined $ a_i $ 's. Since the answer may be large, you need to output it modulo $ 1\,000\,000\,007 $ .
Input Format
Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 10^4 $ ). The description of the test cases follows.
For each test case, the first line contains an integer $ n $ ( $ 1 \leq n \leq 4 \cdot 10^5 $ ).
The second line contains $ n+1 $ integers $ a_0, a_1, \ldots, a_n $ ( $ -1 \leq a_i \leq 10^9 $ ). Here, $ a_i=-1 $ means $ a_i $ has not been determined, while $ a_i \neq -1 $ means $ a_i $ has been determined as its value.
It is guaranteed that $ a_0 $ and $ a_n $ are always $ -1 $ in the input.
It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 4 \cdot 10^5 $ .
Output Format
For each test case, output the number of cool valid polynomials of degree $ n $ found by determining the undetermined $ a_i $ 's, modulo $ 1\,000\,000\,007 $ .
Explanation/Hint
In the first test case, only $ f(x) = x $ satisfies the condition above.
In the second test case, only $ f(x) = x^2 + 2x $ satisfies the condition above.
In the third test case, $ f(x) = 2x^2 + x $ , $ f(x) = x^2 + 2x $ , and $ f(x) = 2x^2 + 1 $ satisfy the condition above.