题
#include<bits/stdc++.h>
using namespace std;
int n;
int ans=-1;
string s[51];
bool vis[51];
void dfs(int cnt,char a,int id){
int t=0;
ans=max(ans,cnt);
for(int i=1;i<=n;i++){
if(s[i][0]==a){
vis[id]=1;
t=1;
dfs(cnt+1,s[i][s[i].size()-1],i);
vis[id]=0;
}
}
if(t==0){
return ;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i];
}
for(int i=1;i<=n;i++){
dfs(1,s[i][s[i].size()-1],i);
}
cout<<ans;
return 0;
}
另:n<=50,深搜会不会超时啊QWQ