#CF1966A. 卡牌交换
卡牌交换
A. 卡牌交换
单次测试时间限制: 秒 内存限制: 兆字节
你手里有 张卡牌,每张卡牌上都写有一个数字,同时给定一个固定整数 。你可以执行以下操作任意次数: 1. 从你手中选择任意 张数字相同的卡牌; 2. 将这 张卡牌交换成 张卡牌,新卡牌上的数字可以由你任意指定(也可以和被交换的卡牌数字相同)。
下方是第一个样例的一种可行操作序列(其中 ):
请问:最终你手中最少能剩下多少张卡牌?
输入格式
第一行输入一个整数 (),表示测试用例的数量。 每个测试用例的描述如下: 1. 第一行包含两个整数 和 (,),分别表示你初始拥有的卡牌数量、每次操作需要交换的卡牌数量; 2. 第二行包含 个整数 (),表示每张卡牌上的数字。
输出格式
对于每个测试用例,输出一个整数——执行任意次操作后,你手中剩余的最小卡牌数量。
样例输入
7
5 3
4 1 1 4 4
1 10
7
7 2
4 2 1 100 5 2 3
10 4
1 1 1 1 1 1 1 1 1 1
5 2
3 8 1 48 7
6 2
10 20 30 10 20 40
6 3
10 20 30 10 20 40
样例输出
2
1
1
3
5
1
6
样例说明
- 第一个样例对应题目描述的操作,最优操作后剩余 张卡牌,因此答案为 ;
- 第二个样例无法执行任何操作,因此答案为 ;
- 第四个样例:你可以反复选择 张数字为 的卡牌,将它们替换为 张数字为 的卡牌,直到剩余 张卡牌。