#CF2114B. 不完全回文字符串

不完全回文字符串

B. 不完全回文字符串
每个测试的时间限制:2 秒
每个测试的内存限制:256 兆字节

Vlad 找到了一个长度为偶数 nn 的二进制字符串 ss
他认为一对下标 (i,ni+1)(i, n - i + 1)(其中 1i<ni+11 \le i < n - i + 1)是好对,如果 si=sni+1s_i = s_{n - i + 1} 成立。

例如,字符串 '010001' 中只有 11 个好对,因为 s1s6s_1 \neq s_6s2s5s_2 \neq s_5,而 s3=s4s_3 = s_4
在字符串 '0101' 中没有好对。

Vlad 喜欢回文,但不是特别喜欢,因此他想重新排列字符串中的一些字符,使得正好有 kk 个好对。

请判断是否可以通过重新排列给定字符串中的字符,使得正好有 kk 个好对 (i,ni+1)(i, n - i + 1)

*二进制字符串是指只包含字符 '0''1' 的字符串。


输入
第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试用例的数量。
每个测试用例的第一行包含两个整数 nnkk2n21052 \le n \le 2 \cdot 10^50kn20 \le k \le \frac{n}{2}nn 是偶数)—— 字符串的长度和所需好对的数量。
第二行包含一个长度为 nn 的二进制字符串 ss

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出
对于每个测试用例,如果可以重新排列字符使得正好有 kk 个好对,输出 "YES",否则输出 "NO"
你可以以任何大小写输出字母(小写或大写)。例如,"yEs""yes""Yes""YES" 都会被接受为肯定答案。


示例
输入:

6
6 2
000000
2 1
01
4 1
1011
10 2
1101011001
10 1
1101011001
2 1
11

输出:

NO
NO
YES
NO
YES
YES