CF1613D.MEX Sequences

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Let's call a sequence of integers x1,x2,,xkx_1, x_2, \dots, x_k MEX-correct if for all ii ( 1ik1 \le i \le k ) xiMEX(x1,x2,,xi)1|x_i - \operatorname{MEX}(x_1, x_2, \dots, x_i)| \le 1 holds. Where MEX(x1,,xk)\operatorname{MEX}(x_1, \dots, x_k) is the minimum non-negative integer that doesn't belong to the set x1,,xkx_1, \dots, x_k . For example, MEX(1,0,1,3)=2\operatorname{MEX}(1, 0, 1, 3) = 2 and MEX(2,1,5)=0\operatorname{MEX}(2, 1, 5) = 0 .

You are given an array aa consisting of nn non-negative integers. Calculate the number of non-empty MEX-correct subsequences of a given array. The number of subsequences can be very large, so print it modulo 998244353998244353 .

Note: a subsequence of an array aa is a sequence [ai1,ai2,,aim][a_{i_1}, a_{i_2}, \dots, a_{i_m}] meeting the constraints 1i1<i2<<imn1 \le i_1 < i_2 < \dots < i_m \le n . If two different ways to choose the sequence of indices [i1,i2,,im][i_1, i_2, \dots, i_m] yield the same subsequence, the resulting subsequence should be counted twice (i. e. two subsequences are different if their sequences of indices [i1,i2,,im][i_1, i_2, \dots, i_m] are not the same).

输入格式

The first line contains a single integer tt ( 1t1051 \le t \le 10^5 ) — the number of test cases.

The first line of each test case contains a single integer nn ( 1n51051 \le n \le 5 \cdot 10^5 ).

The second line contains nn integers a1,a2,,ana_1, a_2, \dots, a_n ( 0ain0 \le a_i \le n ).

The sum of nn over all test cases doesn't exceed 51055 \cdot 10^5 .

输出格式

For each test case, print a single integer — the number of non-empty MEX-correct subsequences of a given array, taken modulo 998244353998244353 .

输入输出样例

  • 输入#1

    4
    3
    0 2 1
    2
    1 0
    5
    0 0 0 0 0
    4
    0 1 2 3

    输出#1

    4
    2
    31
    7

说明/提示

In the first example, the valid subsequences are [0][0] , [1][1] , [0,1][0,1] and [0,2][0,2] .

In the second example, the valid subsequences are [0][0] and [1][1] .

In the third example, any non-empty subsequence is valid.

首页