CF2114B.Not Quite a Palindromic String

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Not Quite a Palindromic String

题目描述

Vlad 发现了一个长度为偶数 n n 的二进制字符串 ^{\text{∗}} s s 。他认为一对索引 ( i,ni+1 i, n - i + 1 )(其中 1i<ni+1 1 \le i < n - i + 1 )是好的,如果满足 si=sni+1 s_i = s_{n - i + 1}

例如,在字符串 '010001' 中只有 1 1 对好的索引,因为 s1s6 s_1 \ne s_6 s2s5 s_2 \ne s_5 ,而 s3=s4 s_3 = s_4 。在字符串 '0101' 中没有好的索引对。

Vlad 喜欢回文串,但又不那么喜欢,所以他希望通过重新排列字符串中的某些字符,使得恰好有 k k 对好的索引。

判断是否可以通过重新排列给定字符串中的字符,使得恰好有 k k 对好的索引 ( i,ni+1 i, n - i + 1 )。

^{\text{∗}} 二进制字符串是指仅由字符 '0' 和 '1' 组成的字符串。

输入格式

第一行包含一个整数 t t 1t104 1 \le t \le 10^4 )——测试用例的数量。

每个测试用例的第一行包含两个整数 n n k k 2n2105 2 \le n \le 2 \cdot 10^5 0kn2 0 \le k \le \frac{n}{2} n n 为偶数)——字符串的长度和所需的好索引对的数量。

每个测试用例的第二行包含一个长度为 n n 的二进制字符串 s s

保证所有测试用例的 n n 之和不超过 2105 2 \cdot 10^5

输出格式

对于每个测试用例,如果存在一种重新排列字符串字符的方法使得恰好有 k k 对好的索引,则输出 "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

在线编程 IDE

建议全屏模式获得最佳体验