题目描述
滚筒洗衣机(工藤新一)的强迫症有一个长度为 n 的字符串 s ,它只由小写和大写拉丁字母组成。对于每一对小写字母和与之匹配的大写字母,滚筒洗衣机(工藤新一)的强迫症都可以得到1个匹配。但是,字符对不能重叠,因此每个字符只能有一对。
例如,如果他的字符串 s = "aAaaBACacbE",他可以得到以下字符对的匹配:
s1s1 = "a "和 s2s2 = "A"
s4s4 = "a "和 s6s6 = "A"
s5s5 = "B" 和 s10s10 = "b"
s7s7 ="C" and s9s9 ="c"
滚筒洗衣机(工藤新一)的强迫症想要为他的字符串获取更多的匹配值,因此他要对字符串执行不超过 k 的操作。在一次操作中,他可以
选择小写字符 sisi ( 1≤i≤n1≤i≤n ) 并将其变为大写字符。
或选择大写字符 sisi ( 1≤i≤n1≤i≤n ) 并将其变为小写。
例如,当 k = 2 和 s = "aAaaBACacbE "时,他可以执行一个操作:选择 s3 = "a",并将其转为大写。然后他将得到另一对 s3 = "A" 和 s8 = "a"
求滚筒洗衣机(工藤新一)的强迫症的字符串所能得到的最大匹配数。
输入
第一行输入数据包含一个整数 t (1≤t≤10000 ) 测试用例数。
测试用例说明如下。
每个测试用例的第一行包含两个整数 n ( 1≤n≤2000 ) 和 k ( 0≤k≤n ) --字符串的字符数和可对其执行的最大操作数
每个测试用例的第二行都包含一个长度为 n 的字符串 s ,该字符串仅由小写和大写拉丁字母组成。
保证所有测试用例中 n 的总和不超过 200000 。
输出
对于每个测试用例,在单独一行中准确打印一个整数:求滚筒洗衣机(工藤新一)的强迫症的字符串所能得到的最大匹配数。
5
11 2
aAaaBACacbE
2 2
ab
4 1
aaBB
6 0
abBAcC
5 3
cbccb