#P15866. 【MX-X26-T2】「Cfz Round 7」Tap Tap Dance

【MX-X26-T2】「Cfz Round 7」Tap Tap Dance

说明

Yuki 有一个长度为 nn 的序列 aa

Yuki 定义一次「鱼鱼」操作为:

  • 选择两个整数 l,rl,r,满足 1lrn1 \le l \le r \le n
  • alara_l \sim a_rmex\operatorname{mex}xx,删除 alara_l \sim a_r 中大于 xx 的数,并将 nn 修改为此时序列 aa 的长度。

你需要求出使序列 aa 尽可能短所需的「鱼鱼」操作次数的最小值。

本题中,一个序列的 mex\operatorname{mex} 为该序列中未出现过的最小非负整数,例如:

  • mex({1,2,3})=0\operatorname{mex}(\{1,2,3\})=0
  • mex({0})=1\operatorname{mex}(\{0\})=1
  • mex({1,0,2,4})=3\operatorname{mex}(\{1,0,2,4\})=3

特别地,当序列为空时,该序列的 mex\operatorname{mex}00

输入格式

本题有多组测试数据。

输入的第一行包含两个整数 c,tc,t,分别表示该测试点所属的子任务编号和测试数据组数。样例满足 c=0c=0

接下来依次输入每组测试数据。对于每组测试数据:

  • 第一行包含一个整数 nn
  • 第二行包含 nn 个整数 a1,,ana_1,\dots,a_n

输出格式

对于每组测试数据,输出一行,包含一个整数,表示使序列 aa 尽可能短所需的「鱼鱼」操作次数的最小值。

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

提示

样例 1 解释

对于第 11 组测试数据,直接选择 l=1l=1r=nr=n 进行「鱼鱼」操作即可使序列 aa 变成 {0}\{0\}。容易证明 00 无法被删除,此时序列 aa 的长度达到最小值。

对于第 22 组测试数据,可以先选择 l=1l=1r=1r=1 进行「鱼鱼」操作,此时序列 aa 变为 {0,3,3,1}\{0,3,3,1\},再选择 l=2l=2r=4r=4 进行「鱼鱼」操作,此时序列 aa 变成 {0}\{0\},长度达到最小值。

数据范围

n\sum n 表示单个测试点中 nn 的和。

对于所有测试数据,均有:

  • 1t1051 \le t \le 10^5
  • 1n51051 \le n \le 5 \cdot 10^5n5105\sum n \le 5\cdot 10^5
  • 对于所有 1in1 \le i \le n,均有 0ai1090 \le a_i \le 10^9

本题采用捆绑测试。

  • Subtask 1(18 points):n10n \le 10n10\sum n \le 10
  • Subtask 2(5 points):保证序列 aa 中不存在 00
  • Subtask 3(21 points):保证序列 aa 中存在恰好一个 00
  • Subtask 4(24 points):对于所有不大于 nn 的正奇数 ii,保证 ai=0a_i=0
  • Subtask 5(32 points):无特殊限制。