IAEPC Preliminary Contest (Codeforces Round 999, Div. 1 + Div. 2)
C
Kevin and Puzzle
Codeforces
1600
原题
← BD →
翻译中…

Kevin enjoys logic puzzles.

翻译中…

He played a game with $n$ classmates who stand in a line. The $i$-th person from the left says that there are $a_i$ liars to their left (not including themselves).

翻译中…

Each classmate is either honest or a liar, with the restriction that no two liars can stand next to each other. Honest classmates always say the truth. Liars can say either the truth or lies, meaning their statements are considered unreliable.

翻译中…

Kevin wants to determine the number of distinct possible game configurations modulo $998\,244\,353$. Two configurations are considered different if at least one classmate is honest in one configuration and a liar in the other.

翻译中…

Input

翻译中…

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 an integer $n$ ($1\leq n \leq 2 \cdot 10^5$) — the number of classmates.

翻译中…

The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ ($0\leq a_i \leq n$) — the number of liars to the left of the $i$-th person they claimed.

翻译中…

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

翻译中…

Output

翻译中…

For each test case, output one integer — the number of distinct game configurations modulo $998\,244\,353$.

翻译中…

Note

翻译中…

We will use $\color{red}{\text{red}}$ to mark liars and $\color{blue}{\text{blue}}$ to mark honest people.

翻译中…

In the first test case, the only possible way is $(\color{red}{0},\color{blue}{1},\color{red}{2})$.

翻译中…

In the second test case, two possible ways are $(\color{blue}{0},\color{blue}{0},\color{blue}{0},\color{blue}{0},\color{blue}{0})$ and $(\color{blue}{0},\color{blue}{0},\color{blue}{0},\color{blue}{0},\color{red}{0})$.

翻译中…

In the third test case, three possible ways are $(\color{blue}{0},\color{blue}{0},\color{red}{1},\color{blue}{1},\color{red}{2})$, $(\color{blue}{0},\color{red}{0},\color{blue}{1},\color{red}{1},\color{blue}{2})$, $(\color{blue}{0},\color{red}{0},\color{blue}{1},\color{blue}{1},\color{red}{2})$.

翻译中…

样例

Input #1
8
3
0 1 2
5
0 0 0 0 0
5
0 0 1 1 2
5
0 1 2 3 4
5
0 0 1 1 1
5
5 1 5 2 5
1
0
4
2 3 1 1
Output #1
1
2
3
0
4
1
2
0
InputCopy OutputCopy
题目信息
题号
2061C
时间限制
2 s
内存限制
256 MB
标签
2-SAT
组合数学
动态规划

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。