CF1613D MEX Sequences

题目描述

我们定义一个整数序列 $x_{1}, x_{2}, \ldots, x_{k}$ “MEX 正确”,当且仅当: 对于每一个 $i$($1 \le i \le k$),都满足 $\lvert x_{i} − \operatorname{MEX}(x_{1},x_{2}, \ldots , x_{i})\rvert \le 1$。 其中,$\operatorname{MEX}(x_{1},x_{2},\ldots,x_{k})$ 即整数序列 $x_{1},x_{2},\ldots,x_{k}$ 中未出现的最小非负整数。例如,$\operatorname{MEX}(1,0,1,3)=2$、$\operatorname{MEX}(2,1,5)=0$。 给定一个由 $n$ 个非负整数组成的数组 $a$。计算给定数组的非空 “MEX 正确” 子序列的数量。子序列的数量可能非常大,因此请将答案对 $998244353$ 取模后输出。 注意:数组 $a$ 的子序列即满足 $1 \le i_{1} < i_{2} < \cdots < i_{m} \le n$ 的序列 $a_{i_{1}}, a_{i_{2}}, \ldots, a_{i_{m}}$。我们认为,当两个子序列中至少存在一个元素在原数组中的下标不同时,这两个子序列不同(即两个子序列所对应的$i_{1}, i_{2}, \ldots, i_{m}$ 不同时,这两个子序列不同)。

输入格式

第一行一个数 $t$($1 \le t \le {10}^5$),表示测试数据组数。 每组数据第一行一个整数 $n$($1 \le n \le 5 \times {10}^5$)。 第二行 $n$ 个整数 $a_{1},a_{2},\ldots,a_{n}$($0 \le a_{i} \le n$)。 所有测试数据的 $n$ 的总和不超过 $5 \cdot {10}^5$。

输出格式

对于每组数据,输出一个整数,即给定数组的非空 MEX 正确子序列的数量对 $998244353$ 取模的结果。

说明/提示

在样例的 $4$ 组数据中: 第一组中,可行的子序列是 $[0] , [1] , [0,1]$ 和 $[0,2]$。 第一组中,可行的子序列是 $[0] , [1]$。 第三组中,每个非空子序列都是可行的。