题解:Luogu CF548A Mike and Fax
CF548A Mike and Fax题解
题目上说有 \(k\) 个子字符串,我们就可以把字符串分成 \(k\) 份,如果分不成 \(k\) 份(也就是说长度不是 \(k\) 的倍数)的话,直接输出NO。之后,我们循环枚举字符串中的 \(k\) 个子字符串,一次判断是否回文即可。
代码
#include <bits/stdc++.h>
using namespace std;
string a;
int k;
bool add(string a) {
int l=a.size();
bool f=1;
for(int i=0,j=l-1;i<=j;i++,j--){
if(a[i]!=a[j])f=0;
}
return f;
}
int main() {
cin>>a>>k;
int l=a.size();
if(l%k!=0){
cout<<"NO";
return 0;
}
int s=l/k;
for(int i=0;i<l;i+=s) {
string a1=a.substr(i,s);
if(add(a1)==false){
cout<<"NO";
return 0;
}
}
cout<<"YES";
return 0;
}

浙公网安备 33010602011771号