#L3883. 「eJOI2022」Adjacent Pairs

    ID: 3725 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>模拟贪心其他桶排序构造数论数位统计

「eJOI2022」Adjacent Pairs

「eJOI2022」Adjacent Pairs

题目描述

如果对于任意满足 1im11 \leq i \leq m-1ii,都有 bibi+1b_i \neq b_{i+1},我们就称数组 b1,b2,,bmb_1, b_2, \ldots, b_m好的

给定一个长度为 nn 的好数组 a1,a2,,ana_1, a_2, \ldots, a_n。你可以对这个数组进行如下操作:

  • 选择任意下标 ii (1in1 \leq i \leq n) 和一个数字 xx (1x1091 \leq x \leq 10^9)。然后将 xx 赋给 aia_i。在此操作后,数组必须仍然是好的。

你想要进行一些操作,使得最终得到的数组只包含恰好两个不同的值。请确定为了达成目标所需的最小操作次数。

输入格式

第一行一个整数 tt (1t1051 \leq t \leq 10^5),表示测试点个数。对于每组测试点的描述如下。

每个测试点的第一行包含一个整数 nn (2n21052 \leq n \leq 2 \cdot 10^5),表示数组长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n (1ain1 \leq a_i \leq n),表示这个数组。保证对于 1in11 \leq i \leq n-1,满足 aiai+1a_i \neq a_{i+1}(即,这个数组是好的)。

保证一组数据的所有测试点中 nn 的总和不超过 21052 \cdot 10^5

输出格式

对于每组数据输出一行,表示为了使得最终得到的数组只包含恰好两个不同的值,所需的最小操作次数。

样例

输入

2
5
4 5 2 4 5
2
1 2

输出

3
0

对于第一个测试点,一种最优的操作序列如下:

$$(4,5,2,4,5) \to (2,5,2,4,5) \to (2,5,2,4,2) \to (2,5,2,5,2) $$

对于第二个测试点,数组已经只包含两个不同值了,因此答案为 00

评分

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
1 n100\sum n \leq 100 20
2 n500\sum n \leq 500 10
3 n4103\sum n \leq 4 \cdot 10^3 25
4 无附加限制 45

注:n\sum n 指一组测试数据中所有测试点的 nn 的总和。