CF2114B Not Quite a Palindromic String

题目描述

Vlad 发现了一个长度为偶数 $ n $ 的二进制字符串 $ ^{\text{∗}} $ $ s $。他认为一对索引 ( $ i, n - i + 1 $ )(其中 $ 1 \le i < n - i + 1 $)是好的,如果满足 $ s_i = s_{n - i + 1} $。 例如,在字符串 '010001' 中只有 $ 1 $ 对好的索引,因为 $ s_1 \ne s_6 $,$ s_2 \ne s_5 $,而 $ s_3 = s_4 $。在字符串 '0101' 中没有好的索引对。 Vlad 喜欢回文串,但又不那么喜欢,所以他希望通过重新排列字符串中的某些字符,使得恰好有 $ k $ 对好的索引。 判断是否可以通过重新排列给定字符串中的字符,使得恰好有 $ k $ 对好的索引 ( $ i, n - i + 1 $ )。 $ ^{\text{∗}} $ 二进制字符串是指仅由字符 '0' 和 '1' 组成的字符串。

输入格式

第一行包含一个整数 $ t $($ 1 \le t \le 10^4 $)——测试用例的数量。 每个测试用例的第一行包含两个整数 $ n $ 和 $ k $($ 2 \le n \le 2 \cdot 10^5 $,$ 0 \le k \le \frac{n}{2} $,$ n $ 为偶数)——字符串的长度和所需的好索引对的数量。 每个测试用例的第二行包含一个长度为 $ n $ 的二进制字符串 $ s $。 保证所有测试用例的 $ n $ 之和不超过 $ 2 \cdot 10^5 $。

输出格式

对于每个测试用例,如果存在一种重新排列字符串字符的方法使得恰好有 $ k $ 对好的索引,则输出 "YES",否则输出 "NO"。 你可以以任何大小写形式输出答案(例如,"yEs"、"yes"、"Yes" 或 "YES" 都会被接受)。