Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
20006 | 桑迪 | 简单单词接龙 | C++ | 通过 | 100 | 0 MS | 256 KB | 614 | 2021-05-27 21:41:29 |
#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(){ 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; }