3953 - 染色

题目描述

小 A 拥有一个仅由小写字母组成的字符串S。

可以将其中的字母染色为 k 种颜色。并不是每个字母都需要进行染色,但是要求对于每种颜色,必须至少有一个字母由该颜色染色。

然后可以交换相同颜色的字母任意次。

操作结束后意味着小 A 将拥有 k 种颜色的子串,第 i 个子串包含了所有染色为第 i 种颜色的字母。

小 A 的任务是对这个字符串 S 进行染色,但是要保证这 k 个子串可以成为回文子串,并且其中最短的子串长度尽可能长。

如果字符串从左到右和从右到左的读取结果相同那么它就是回文的。比如字符串aabaaaaa是回文的,但是ababaaabaa不是回文的。

输入

第一行读入一个整数 t,表示有 t 组测试数据。

接下来会读入 t 组测试数据:

每组测试数据的第一行为两个整数 nk,分别表示字符串 S 的长度 和 可以染色的颜色种类 。

第二行为一个仅包含小写字母的字符串 S

输出

输出 t 个整数,每行一个,表示对于每组数据的字符串 S 染色后所能形成的 k 个子串中最短的回文串最长的长度。

样例

输入

1
8 2
bxyaxzay

输出

3

输入

2
6 3
aaaaaa
6 1
abcdef

输出

2
1

输入

7
6 6
abcdef
3 2
dxd
11 2
abcabcabcac
6 6
sipkic
7 2
eatoohd
3 1
llw
6 2
bfvfbv

输出

1
1
5
1
1
3
3
说明

样例 1 解释

可以把长度为 8 的字符串 bxyaxzay 染色为两种颜色。

染色后可以变为:\red{b}\blue{xy}\red{a}\blue{xz}\red{a}\blue{y}

我们可以得到两个颜色的子串分别为:\red{baa}\blue{xyxzy}

这两个子串都已通过交换位置变为回文子串:\red{aba}\blue{xyzyx}

最短长度为 3,且无法再找到让其变得更大的方案。

数据规模

1 \leq t \leq 10000

1 \leq k \leq n \leq 2 \times 10^5

数据保证每组测试用例中 n 的和不会超过 2 \times 10^5

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 1
通过人数 1
金币数量 0 枚
难度 基础


上一题 下一题