#P15457. 【MX-X25-T1】『FeOI-5』序列变换

    ID: 15359 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>模拟O2优化双指针 two-pointer梦熊比赛

【MX-X25-T1】『FeOI-5』序列变换

说明

给定一个长 nn 的序列 aa,不断进行如下操作:

  1. i[1,n]\forall i\in[1,n],令 bib_i 为集合 {a1,a2,a3,,ai}\{a_1,a_2,a_3,\dots,a_i\}mex\text{mex}(最小的未出现的非负整数);
  2. i[1,n]\forall i\in[1,n],令 aia_i 变为 bib_i

求有多少种序列 aa 会在该过程中被生成(包含原序列即第 00 轮操作结束后的序列)。两个长 nn 的序列 a,ba,b 不同当且仅当 i[1,n]\exist i\in[1,n] 使得 aibia_i\not=b_i

输入格式

第一行两个整数 c,Tc,T 分别表示测试点所属的子任务编号(样例保证 c=0c=0)和数据组数。

对于每组数据,输入两行:

  • 第一行一个整数 nn

  • 第二行 nn 个整数表示序列 aa

输出格式

对于每组数据,输出一行一个整数表示答案。

0 1
5
3 2 1 1 4
3
0 1
12
1 0 3 2 2 1 4 5 6 8 7 9
4

提示

【样例 1 解释】

这是前几轮操作的结果:

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

不难发现,之后序列 aa 会不断在全 11 序列与全 00 序列之间交替,故共有 33 种序列 aa 会被生成,答案为 33

【样例 2 解释】

这是前几轮操作的结果:

1 0 3 2 2 1 4 5 6 8 7 9
0 2 2 4 4 4 5 6 7 7 9 10
1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1

【数据范围】

对于所有测试数据,1n,n1061\le n,\sum n\le 10^60ain0\le a_i\le n1T1001\le T\le 100

子任务编号 n\sum n 特殊性质 分数
11 5\le 5 55
22 10\le 10 1010
33 106\le 10^6 ai{0,1}a_i\in\{0,1\}
44 5000\le 5000 2020
55 106\le 10^6 5555