问题 5613 --能得到字符串s吗?

5613: 能得到字符串s吗?★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 76  解决: 33
[提交][状态][命题人:]

题目描述

给定一个字符串s和一个整数k,请你判断是否存在k+1个非空字符串a1,a2…ak+1,使得:s = a1 + a2 +……+ ak + ak + 1 + R (ak) + R(ak1)+……+ R (a1)

这里的+表示字符串连接,R(x)定义为字符串x的反向字符串。例如R(abcd)=dcba。请注意,在上面的公式中,R(ak+1)被有意跳过。

你的程序应该解决t个独立的测试用例。

输入

第一行只有一个正整数t1<=t<=100):测试用例数

接下来共t个测试用例,每个测试用例共两行:

第一行共两个整数nk的值,n为字符串s的长度,k为上述中的整数k1<=n<=100,0<=k<=lower(n/2)(low(n/2)表示向下取整)

第二行为一个长度为n的字符串s(全部由小写字母组成)

输出

    对于每个测试用例,如果可以找到a1,a2ak+1,使得:s = a1 + a2 +……+ ak + ak + 1 + R (ak) + (ak1)+……+ R (a1),则输出:YES。否则,输出:NO
样例输入
Copy
7
5 1
qwqwq
2 1
ab
3 1
ioi
4 2
icpc
22 0
dokidokiliteratureclub
19 8
imteamshanghaialice
6 3
aaaaaa
样例输出
Copy
YES
NO
YES
NO
YES
NO
NO

提示

在第一个测试用例中,一个可行的解是a1=qwa2=q

在第三个测试用例中,一个可行的解是a1=ia2=o

在第五个测试用例中,一个可行的解是a1=dokidokiliteratureclub

来源

 

[提交][状态]