CF1931C Make Equal Again
题目描述
你有一个长度为 $n$ 的整数数组 $a$。
你最多可以进行一次如下操作:选择三个整数 $i$、$j$、$x$($1 \le i \le j \le n$),并将数组中下标从 $i$ 到 $j$ 的所有元素赋值为 $x$。该操作的花费取决于所选的下标,等于 $(j - i + 1)$ 布尔币。
例如,数组为 $[1, 2, 3, 4, 5, 1]$。如果我们选择 $i = 2, j = 4, x = 8$,那么操作后数组变为 $[1, 8, 8, 8, 5, 1]$。
你需要花费最少多少布尔币,使得数组中所有元素都相等?
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10 ^ 5$),表示数组的长度。
每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le n$),表示数组的元素。
保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数,表示使数组所有元素相等所需的最小布尔币数。可以证明总能做到。
说明/提示
由 ChatGPT 4.1 翻译