提交时间:2021-05-27 20:08:33

运行 ID: 19970

#include<iostream> #include<cstdio> #include<cstring> using namespace std; int v[105],n,ans; struct bxk { int l,r; }x[105];//保存每个元素 void dfs(int k,int maxn) { int i; if(maxn>ans)ans=maxn; for(i=1;i<=n;++i){//查找.... if(!v[i]&&x[i].l==x[k].r){//找到 v[i]=1;//标记.. dfs(i,maxn+1);//递归搜索 v[i]=0;//取消标记 } } } int main() { // freopen("x14_5.in","r",stdin); // freopen("x14_5.out","w",stdout); int i; char s[1005]; cin>>n; for(i=1;i<=n;++i){ cin>>s; x[i].l=s[0];x[i].r=s[1]; } v[1]=1;dfs(1,1);//第一个单词为龙头。如果不是,则循环设置第一个单词 cout<<ans; return 0; }