「SFCOI-3」进行一个列的排
题目背景
![](https://cdn.luogu.com.cn/upload/image_hosting/8v9kbxjs.png)
(其实这题原来叫 I must say No,不过出于某些显然的原因就改题目名了 /kk)
You must say Yes.
(题目背景图片来自 Phigros 曲绘,如有侵权,请告知出题人。)
题目描述
小 R 有一个长度为 $n$ 的排列 $p_1\dots p_n$。换句话说,$p_1\dots p_n$ 包含 $0 \sim (n - 1)$ 之间的数,并且满足对于 $0 \sim (n - 1)$ 这 $n$ 个数,每个数在 $p$ 中出现且仅出现一次。
小 R 有 $n$ 个限制,其中第 $i(0 \leq i \leq n - 1)$ 个用一个![](cnm,shabierLeasier)**正整数** $L_i$ 描述,表示至少有一个长度为 $L_i$ 的区间 $[l, r]$(即 $r - l + 1 = L_i$)满足 $\operatorname{mex}_{k=l}^r p_k = i$。
小 R 丢失了排列 $p_1\dots p_n$,不过幸运的是她仍然记得这 $n$ 条限制。请你帮她求出总共有多少个初始的合法排列,答案对 $998244353$ 取模。
输入输出格式
输入格式
**本题每个测试点有多组数据。**
第一行一个整数 $T$ 表示数据组数。对于每组数据:
+ 第一行一个整数 $n$。
+ 第二行 $n$ 个整数依次表示 $L_0\dots L_{n-1}$。
输出格式
共 $T$ 行,每行一个整数表示答案。
输入输出样例
输入样例 #1
4
4
1 1 3 3
5
2 1 3 3 4
6
1 1 2 5 4 5
10
3 2 3 4 7 6 8 8 8 9
输出样例 #1
4
12
8
96
说明
### 定义
+ 一个序列的 $\operatorname{mex}$ 是其中没有出现过的最小非负整数,如 $\operatorname{mex}\{1, 3, 4\} = 0$,$\operatorname{mex}\{0, 1, 1, 2, 5\} = 3$,$\operatorname{mex}\{3, 1, 0, 2\} = 4$。
### 数据规模与约定
+ Subtask 0(10 pts):$n \leq 10$。
+ Subtask 1(30 pts):$n \leq 18$。
+ Subtask 2(15 pts):$n \leq 300$。
+ Subtask 3(45 pts):无特殊限制。
对于所有数据,$1 \leq T \leq 10$,$1 \leq n \leq 5 \times 10^3$,$1 \leq L_i \leq n$。