#CF1922F. 区间替换
区间替换
F. 区间替换
时间限制:每个测试 秒
内存限制:每个测试 MB
给定一个数组 ,每个元素都是 到 之间的整数。
你可以对其进行任意次数的以下操作:
选择三个整数 、 和 ,满足 ,,且子段 内的每个元素 都不等于 。然后,将子段 内的每个元素替换为 。
换句话说,你选择一个数组的子段和一个 到 之间且不出现在该子段中的整数,并将子段内的所有元素替换为选定的整数。
你的目标是使数组中的所有元素都相等。你需要执行的最少操作次数是多少?
输入
第一行包含一个整数 ()——测试用例的数量。
每个测试用例由两行组成:
- 第一行包含两个整数 和 ();
- 第二行包含 个整数 ()。
附加输入限制:所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出一个整数——需要执行的最少操作次数。
样例
输入
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
2
2