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,n−i+1 i, n - i + 1 )(其中 1≤i<n−i+1 1 \le i < n - i + 1 )是好的,如果满足 si=sn−i+1 s_i = s_{n - i + 1} 。

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

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

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

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

输入格式

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

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

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

保证所有测试用例的 n n 之和不超过 2⋅105 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

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