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]$。
第三组中,每个非空子序列都是可行的。