CF1672C.Unequal Array

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Unequal Array

题目描述

给定一个长度为 nn 的数组 aa。我们定义数组的“相等性”为满足 ai=ai+1a_i = a_{i+1} 的下标 1in11 \le i \le n-1 的个数。你可以进行如下操作:

  • 选择两个整数 iixx,其中 1in11 \le i \le n-11x1091 \le x \le 10^9,然后将 aia_iai+1a_{i+1} 都赋值为 xx

请你求出最少需要多少次操作,使得数组的“相等性”小于等于 11

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt1t1041 \leq t \leq 10^4),表示测试用例的数量。接下来是每组测试用例的描述。

每组测试用例的第一行包含一个整数 nn2n21052 \le n \le 2 \cdot 10^5),表示数组 aa 的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ai1091 \le a_i \le 10^9),表示数组的元素。

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5

输出格式

对于每组测试用例,输出一个整数,表示所需的最小操作次数。

说明/提示

在第一个测试用例中,我们可以选择 i=2i=2x=2x=2,将数组变为 [1,2,2,1,1][1, 2, 2, 1, 1]。然后选择 i=3i=3x=3x=3,将数组变为 [1,2,3,3,1][1, 2, 3, 3, 1]

在第二个测试用例中,我们可以选择 i=3i=3x=100x=100,将数组变为 [2,1,100,100,2][2, 1, 100, 100, 2]

由 ChatGPT 4.1 翻译

样例

4
5
1 1 1 1 1
5
2 1 1 1 2
6
1 1 2 3 3 4
6
1 2 1 4 5 4
2
1
2
0

在线编程 IDE

建议全屏模式获得最佳体验