CF1672C.Unequal Array

普及-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array aa of length nn. We define the equality of the array as the number of indices 1≤i≤n−11 \le i \le n - 1 such that ai=ai+1a_i = a_{i + 1}. We are allowed to do the following operation:

  • Select two integers ii and xx such that 1≤i≤n−11 \le i \le n - 1 and 1≤x≤1091 \le x \le 10^9. Then, set aia_i and ai+1a_{i + 1} to be equal to xx.

Find the minimum number of operations needed such that the equality of the array is less than or equal to 11.

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

  • 选择两个整数 ii 和 xx,满足 1≤i≤n−11 \le i \le n - 1 且 1≤x≤1091 \le x \le 10^9;然后将 aia_i 和 ai+1a_{i + 1} 同时赋值为 xx。

求使数组相等度不超过 11 所需的最少操作次数。

输入格式

Each test contains multiple test cases. The first line contains a single integer tt (1≤t≤1041 \leq t \leq 10^4) — the number of test cases. The description of the test cases follows.

The first line of each test case contains an integer nn (2≤n≤2⋅1052 \le n \le 2 \cdot 10 ^ 5) — the length of array aa.

The second line of each test case contains nn integers a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤1091 \le a_i \le 10^9) — elements of the array.

It is guaranteed that the sum of nn over all test cases does not exceed 2⋅1052 \cdot 10 ^ 5

每个测试包含多个测试用例。第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4),表示测试用例的数量。随后是各测试用例的描述。

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

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9),表示数组的元素。

保证所有测试用例的 nn 之和不超过 2⋅1052 \cdot 10 ^ 5。

输出格式

For each test case, print the minimum number of operations needed.

对于每个测试用例,输出所需的最少操作次数。

输入输出样例

  • 输入#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

    输出#1

    2
    1
    2
    0

说明/提示

In the first test case, we can select i=2i=2 and x=2x=2 to form [1,2,2,1,1][1, 2, 2, 1, 1]. Then, we can select i=3i=3 and x=3x=3 to form [1,2,3,3,1][1, 2, 3, 3, 1].

In the second test case, we can select i=3i=3 and x=100x=100 to form [2,1,100,100,2][2, 1, 100, 100, 2].

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

在第二个测试用例中,我们可以选择 i=3i=3 和 x=100x=100,得到数组 [2,1,100,100,2][2, 1, 100, 100, 2]。

输入解题思路,AI测评打分。不知道怎么写?

首页