分析
实际上就是裸的分类讨论,手工枚举几轮便可以发现:
当现在的字符串回文字符串时,那么进行;两种操作是相同的,会产生一种答案。
若其不为回文穿,进行操作后会变为两个回文字符串。
综上,当原字符串是回文字符串时答案为 , 不为回文字符串时答案为 。
最后,别忘了特判 无法操作,答案为 !!!
建议评橙。
代码
#include <bits/stdc++.h>
using namespace std;
int T;
int N , K;
string S;
int main() {
ios::sync_with_stdio(false);
cin >> T;
while(T--) {
cin >> N >> K >> S;
if(K == 0) {
cout << 1 << endl;
continue;
}
bool flag = false;
for(int i = 0 , j = N - 1; i < N , j >= 0; i++ , j--) {
if(S[i] != S[j]) flag = true;
}
if(flag == true) {
cout << 2 << endl;
}
else {
cout << 1 << endl;
}
}
return 0;
}