CF2001A.Make All Equal

入门

通过率:0%

AC君温馨提醒

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

题目描述

给你一个循环数组 a1,a2,⋯ ,ana_1,a_2,\cdots,a_n。

你可以对 aa 数组进行最多 n−1n-1 次操作:

  • 设 mm 为 aa 数组现在的大小,你可以选择任意的两个相邻元素,使得前一个元素的值不大于后一个元素的值(特别的是 ama_m 和 a1a_1 是相邻的,且 ama_m 是前一个元素),并将其中的任意一个删除。换句话说,选择一个整数 ii(1≤i≤m1 \le i \le m)使得 ai≤a(i mod m)+1a_i \le a_{(i \bmod m)+1} 成立,并将 aia_i 或 a(i mod m)+1a_{(i \bmod m)+1} 中的一个从 aa 数组中删除。

你的目标是找到使所有元素相等所需的最小操作数。

输入格式

每一个测试点包含多组数据。第一行为数据组数 tt(1≤t≤5001 \le t \le 500)。下面是数据描述。

每一组数据的第一行为一个整数 nn(1≤n≤1001 \le n \le 100),表示 aa 数组的大小。

数据的第二行为 nn 个整数 a1,a2,⋯ ,ana_1,a_2,\cdots,a_n(1≤ai≤n1 \le a_i \le n),表示 aa 数组的元素的值。

输出格式

对于每组数据,每行输出一个整数,表示使所有元素相等所需的最小操作数。

输入输出样例

  • 输入#1

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

    输出#1

    0
    2
    1
    4
    4
    6
    3

说明/提示

在第一组数据中,aa 数组只有一个元素,所以我们不能进行任何操作。

在第二组数据中,我们可以执行以下操作,使得 aa 数组中的所有元素相等:

  • 选择 i=2i=2,删除 a3a_3,则 aa 数组将变为 [1,2][1,2]。

  • 选择 i=1i=1,删除 a1a_1,则 aa 数组将变为 [2][2]。

可以证明,我们不能进行少于 22 次的操作使得 aa 数组中的所有元素相等,所以答案是 22。

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

首页