CF1931C.Make Equal Again

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

Make Equal Again

题目描述

你有一个长度为 nn 的整数数组 aa

你最多可以进行一次如下操作:选择三个整数 iijjxx1ijn1 \le i \le j \le n),并将数组中下标从 iijj 的所有元素赋值为 xx。该操作的花费取决于所选的下标,等于 (ji+1)(j - i + 1) 布尔币。

例如,数组为 [1,2,3,4,5,1][1, 2, 3, 4, 5, 1]。如果我们选择 i=2,j=4,x=8i = 2, j = 4, x = 8,那么操作后数组变为 [1,8,8,8,5,1][1, 8, 8, 8, 5, 1]

你需要花费最少多少布尔币,使得数组中所有元素都相等?

输入格式

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

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

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ain1 \le a_i \le n),表示数组的元素。

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

输出格式

对于每个测试用例,输出一个整数,表示使数组所有元素相等所需的最小布尔币数。可以证明总能做到。

说明/提示

由 ChatGPT 4.1 翻译

样例

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

在线编程 IDE

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