P5546 [POI 2000] 公共串题目描述给出几个由小写字母构成的单词求它们最长的公共子串的长度。输入格式文件的第一行是整数nnn1≤n≤51\le n \le 51≤n≤5表示单词的数量。接下来nnn行每行一个单词只由小写字母组成单词的长度至少为111最大为200020002000。输出格式仅一行一个整数最长公共子串的长度。输入输出样例 #1输入 #13 abcb bca acbc输出 #12C实现#includebits/stdc.husingnamespacestd;constintN2e35;intn,ans0;string a[N],cp;intnxt[N];voidinti(string s){nxt[0]-1;for(inti0,j-1;is.size();){if(s[i]s[j]||j-1)nxt[i]j;elsejnxt[j];}}intKMP(string a,string b){intans-1;for(inti0,j0;ia.size();){if(a[i]b[j]jb.size()-1){returnb.size();}elseif(a[i]b[j]||j-1){ansmax(ans,j);i;j;}elsejnxt[j];}returnans1;}intcheke(string b){intans1e9;inti(b);for(inti1;in;i)ansmin(KMP(a[i],b),ans);returnans;}intmain(){cinn;for(inti1;in;i){cina[i];}for(inti0;ia[1].size();i){string cp;for(intji;ja[1].size();j)cpa[1][j];ansmax(cheke(cp),ans);}coutans;return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容