就是比如有 ababab 和 ababccc,拼起来就是 abababccc。
好吧其实是CF25E不会调。
int gg(int sa,int sb){
string a=s[sa],b=s[sb];
int n=a.size()-1,m=b.size()-1,j=0;
F(i,1,n){
while(j&&a[i]!=b[j+1]) j=nxt[sb][j];
if(a[i]==b[j+1]) j++;
if(j==m||i+j>=n) return j;
}return 0;
}
void init(){
F(k,1,3){
int n=s[k].length()-1,j=0;
F(i,2,n){
while(j&&s[k][i]!=s[k][j+1]) j=nxt[k][j];
if(s[k][i]==s[k][j+1]) j++;
nxt[k][i]=j;
}
}
}
init求了KMP的next数组。gg返回最长的公共部分。
但是除了样例都WA。