CF2061C.Kevin and Puzzle

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

nn 个人排成一行,第 ii 个人说他的左边有 aia_i 个说谎的人。

每个人要么诚实,要么说谎,诚实的人总是说真话,说谎的人说的话可真可假,没有两个说谎的人站在一起。

两个方案被认为是不同的,应当使至少一个人在一个方案诚实,在另外一个方案说谎。请输出不同的方案数对 998244353998244353 取模的结果。

输入格式

多组测试用例,第一行输入 t(1t104)t (1 \le t \le 10 ^ 4),表示测试用例组数。

对于每组测试用例,第一行输入一个正整数 n(n2×105,n2×105)n (n \le 2 \times 10 ^ 5, \sum n \le 2 \times 10 ^ 5),表示人数。

第二行输入 nn 个整数 a1,a2,,an(0ain)a_1, a_2, \ldots, a_n (0 \le a_i \le n)

输出格式

对于每组测试用例,输出不同的方案数对 998244353998244353 取模的结果。

样例解释

将使用 红色\color{red} \textbf{红色} 表示说谎的人,蓝色\color{blue} \textbf{蓝色} 表示诚实的人。

  • 测试用例 11 : (0,1,2)(\color{red}0, \color{blue} 1, \color{red} 2)
  • 测试用例 22 : (0,0,0,0,0)(\color{blue}0, 0, 0, 0, 0)(0,0,0,0,0)(\color{blue}0, 0, 0, 0, \color{red} 0)
  • 测试用例 33 : (0,0,1,1,2)(\color{blue}0, 0, \color{red} 1, \color{blue} 1, \color{red} 2)(0,0,1,1,2)(\color{blue}0, \color{red} 0, \color{blue} 1, \color{red} 1, \color{blue} 2)(0,0,1,1,2)(\color{blue}0, \color{red} 0, \color{blue} 1, \color{blue} 1, \color{red} 2)

输入输出样例

  • 输入#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

    输出#1

    1
    2
    3
    0
    4
    1
    2
    0
首页