0%

Starters-234-Good Array 1

题目大意

  • 给定长度为 NN 的数组 AA

  • 好数组(good) 的定义:数组中存在至少一个数值 xx,它在该数组中恰好出现一次

    • 例如 [1,2,1][1,1,2] 是好数组(2 只出现一次)。
    • [1,2,1,2] 不是好数组(每个值都出现两次)。
  • 漂亮数组(beautiful) 的定义:这个数组的每一个子数组(连续子段)都是好数组。

    • 例如 [1,2,1] 是漂亮数组;[1,1,2][1,2,1,2] 不是。
  • 你可以进行若干次修改操作:每次选择位置 ii,把 AiA_i 改成任意整数 xx

  • 目标:对每个测试用例,求把原数组变成漂亮数组所需的最少修改次数

  • 输入格式:

    • 第一行是测试组数 TT
    • 每组先给 NN,再给 NN 个整数 A1,,ANA_1,\dots,A_N
  • 输出格式:

    • 每组输出一个整数,表示最少修改次数。
  • 数据范围:

    • 1T1031 \le T \le 10^3
    • 2N5002 \le N \le 500
    • 1AiN1 \le A_i \le N
    • 所有测试用例的 N2N^2 之和不超过 5002500^2

样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
输入
4
3
1 3 1
3
1 1 2
4
1 2 1 2
6
1 1 1 2 1 2

输出
0
1
1
2
  • 样例第 1 组:[1,3,1] 本身已经是漂亮数组,所以答案是 0

  • 样例第 2 组:[1,1,2] 不是漂亮数组,改一次即可(如把第 2 个数改成 3,得到 [1,3,2]),答案是 1

  • 样例第 3 组:[1,2,1,2] 不是漂亮数组,最少改 1 次。

  • 样例第 4 组:[1,1,1,2,1,2] 最少改 2 次。

思路讲解

PDF

AC代码

AC
https://www.codechef.com/viewsolution/1263070965

心路历程(WA,TLE,MLE……)