问题2600--滚筒洗衣机(工藤新一)的强迫症

2600: 滚筒洗衣机(工藤新一)的强迫症

[命题人 : ]
时间限制 : 2 sec  内存限制 : 256 MB

提交

题目描述

滚筒洗衣机(工藤新一)的强迫症有一个长度为 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"

求滚筒洗衣机(工藤新一)的强迫症的字符串所能得到的最大匹配数。

输入

第一行输入数据包含一个整数 (1≤t≤10000 ) 测试用例数。
测试用例说明如下。
每个测试用例的第一行包含两个整数 n ( 1≤n≤2000 ) 和 k ( 0≤k≤n ) --字符串的字符数和可对其执行的最大操作数
每个测试用例的第二行都包含一个长度为 n 的字符串 s ,该字符串仅由小写和大写拉丁字母组成。

保证所有测试用例中 n 的总和不超过 200000 。

输出

对于每个测试用例,在单独一行中准确打印一个整数:求滚筒洗衣机(工藤新一)的强迫症的字符串所能得到的最大匹配数。

样例输入 Copy

5
11 2
aAaaBACacbE
2 2
ab
4 1
aaBB
6 0
abBAcC
5 3
cbccb

样例输出 Copy

5
0
1
3
2

来源/分类