#CF1922F. 区间替换

区间替换

区间替换

  • 时间限制:3 秒
  • 内存限制:256 MiB

题目描述

给定一个长度为 nn 的数组 a1,a2,…,ana_1,a_2,\ldots,a_n,每个元素都是 11 到 xx 之间的整数。

一次操作中,你可以选择三个整数 l,r,kl,r,k,满足 1≤l≤r≤n1\le l\le r\le n、1≤k≤x1\le k\le x,并且区间 [l,r][l,r] 中没有任何元素等于 kk。随后,将该区间内的所有元素都替换为 kk。

你的目标是让整个数组中的元素全部相等。请计算所需的最少操作次数。

输入格式

第一行包含一个整数 tt,表示测试用例数量。

每个测试用例包含两行:

第一行包含两个整数 n,xn,x。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

对于每个测试用例,输出一个整数,表示让数组所有元素相等所需的最少操作次数。

样例输入 1

3
3 2
1 2 1
6 3
1 2 3 1 2 3
12 3
3 1 3 1 2 1 1 2 3 1 1 3

样例输出 1

1
2
2

数据范围

对于所有数据,1≤t≤1001\le t\le100,1≤x≤n≤1001\le x\le n\le100,1≤ai≤x1\le a_i\le x,所有测试用例的 nn 之和不超过 500500。

子任务编号 分值 特殊限制
1 20 t≤8t\le8,n≤7n\le7,x≤3x\le3,且所有测试用例的 nn 之和不超过 3535
2 40 x≤2x\le2
3 无特殊限制