#HK3883. 「eJOI2022」Adjacent Pairs

「eJOI2022」Adjacent Pairs

题目描述

本题译自 eJOI2022 Problem A. Adjacent Pairs

如果对于任意满足 1≤i≤m−11\le i\le m-1 的 ii,都有 bi≠bi+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。你可以对这个数组进行如下操作:

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

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

输入格式

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

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

第二行包含 nn 个整数 a1,a2,…,an (1≤ai≤n)a_1,a_2,\ldots,a_n\ (1\le a_i\le n),表示这个数组。保证对于 1≤i≤n−11\le i\le n-1,满足 ai≠ai+1a_i\neq a_{i+1}(即,这个数组是好的)。

保证一组数据的所有测试点中 nn 的总和不超过 2⋅1052\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。

评分

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

子任务编号 附加限制 分值
11 ∑n≤100\sum n\le 100 2020
22 ∑n≤500\sum n\le 500 1010
33 ∑n≤4⋅103\sum n\le 4\cdot 10^3 2525
44 无附加限制 4545

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