题目描述
对于kmp next数组的含义还是不太清楚没搞出来
从ne[n] 开始再输出
C++ 代码
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<unordered_set>
#include<unordered_map>
#include<queue>
#include<vector>
#define endl '\n'
#define debug(a) cout<<#a<<"="<<a<<endl;
#define q_q ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define x first
#define y second
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
const int N = 55;
char s[N],ans[N],ne[N];
int n ,k ;
int main(){
cin >> n >> k >> s + 1;
ne[1] = 0;
for(int i = 2 , j = 0; i <= n; i ++){
while(j && s[i] != s[j+1]) j = ne[j];
if(s[i] == s[j+1]) j ++;
ne[i] = j;
}
for(int i = 1 ; i <= n; i++) cout << s[i];
for(int i =1 ; i < k ;i ++ ){
for(int j = ne[n] + 1 ; j <= n; j ++) cout << s[j];
}
return 0;
}