题库练习 Small Permutation Problem (Easy Version)
← 上一题 下一题 →

A16442 | Small Permutation Problem (Easy Version)

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

[Andy Tunstall - MiniBoss](https://soundcloud.com/tunners/miniboss)

⠀



In the easy version, the $a_i$ are in the range $[0, n]$ ; in the hard version, the $a_i$ are in the range $[-1, n]$ and the definition of good permutation is slightly different. You can make hacks only if all versions of the problem are solved.

You are given an integer $n$ and an array $a_1, a_2 \dots, a_n$ of integers in the range $[0, n]$ .

A permutation $p_1, p_2, \dots, p_n$ of $[1, 2, \dots, n]$ is good if, for each $i$ , the following condition is true:

- the number of values $\leq i$ in $[p_1, p_2, \dots, p_i]$ is exactly $a_i$ .

Count the good permutations of $[1, 2, \dots, n]$ , modulo $998\,244\,353$ .

输入格式

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.

The first line of each test case contains a single integer $n$ ( $1 \leq n \leq 2 \cdot 10^5$ ) — the length of the array $a$ .

The second line of each test case contains $n$ integers $a_1, a_2, \ldots, a_n$ ( $0 \le a_i \le n$ ), which describe the conditions for a good permutation.

It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10^5$ .

输出格式

For each test case, output a single line containing the number of good permutations, modulo $998\,244\,353$ .

输入输出样例

输入 #1
5
5
1 2 3 4 5
6
0 2 2 2 4 6
6
0 1 3 4 5 5
6
1 2 3 2 4 6
15
0 0 1 1 1 2 3 4 5 6 7 9 11 13 15
输出 #1
1
4
0
0
532305727
C++ 编辑器
输入
输出