input
Copy
7 5 1 qwqwq 2 1 ab 3 1 ioi 4 2 icpc 22 0 dokidokiliteratureclub 19 8 imteamshanghaialice 6 3 aaaaaa
output
Copy
YES NO YES NO YES NO NO
Note
In the first test case, one possible solution is a1=qwa1=qw and a2=qa2=q.
In the third test case, one possible solution is a1=ia1=i and a2=oa2=o.
In the fifth test case, one possible solution is a1=dokidokiliteraturecluba1=dokidokiliteratureclub.
解题思路 发现规律
首先长度为n的要被分成2k+1份,就要满足n>=2k+1;否则直接NO
接下来对n>=2k+1的情况在进行深层次的讨论
观察案例可以发现
s由三部分组成:ABC。
其中
1,A和C是对称的
2,A的长度>=k
#include<iostream>
#include<string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);//
cin.tie(nullptr);//以上两行是对cin,cout的优化
int t,n,k;
cin>>t;
while(t--)
{
cin>>n>>k;
string s;
cin>>s;
if(n<2*k+1)
{
cout<<"NO"<<'\n';
continue;
}
for(int i=0;i<k;i++)
{
if(s[i] != s[n-i-1])
{
cout<<"NO"<<'\n';
goto jump;//运用goto语句可以将程序跳到指定位置;
}
}
cout<<"YES"<<'\n';
jump:;
}
return 0;
}
参考链接
原文链接:https://blog.csdn.net/Tisfy/article/details/114647291