SP9097 NOVICE65 - Derangements HARD

Description

给定一个长为 $n$ 的序列 $\{a_i\}_{i=1}^n$,求它的错排有多少个。 $b$ 是 $a$ 的错排的充要条件为: - $b$ 可以经过重新排列得到 $a$ - $\forall i \in [1,n] \text{ s.t. }b_i \neq a_i$ 以上两条都要满足。

Input Format

第一行一个正整数 $T$,表示数据组数。 对于每组数据,第一行一个正整数 $n$,第二行有 $n$ 个整数,表示 $a_1,a_2,\dots,a_n$。

Output Format

对于每组数据,输出一行一个整数表示答案。

Explanation/Hint

【数据范围】 对于 $100\%$ 的数据,$1\le T \le 100$,$1\le n \le 15$,$0 \le a_i < n$。