读题艰难。
思路(根据法则构造):
看到划分回文子串,求方案可不可行——>一个串可能有多种划分方式——>尝试找到最多能划几个,最少能划几个。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll m,a,ans,ansl;
int n,i,j,k,l,r;
char ch[150];
int main()
{
scanf("%d",&n);
while(n--)
{
scanf("%lld%lld%s",&m,&k,ch+1);
int len=strlen(ch+1);
l=1;r=len;
while(l<r)
{
if(ch[l]==ch[r])l++,r--;
else break;
}
if(l>r)
{
l--;
}
if(k<l)printf("YES\n");
else printf("NO\n");
}
return 0;
}