Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 17924 Accepted Submission(s): 6446
so soon river goes them got moon begin big 0
Yes.Harry 可以念这个咒语:"big-got-them".HintHint
和上午的素数环问题很像,但依然跪了,又找了一小时bug。每逢搜索膝盖疼。。。。
这题还是dfs的常规题型(然而还是不会),可以用二维字符数组的第零位储存字符串首位,第一位储存字符串尾位字符。
再进行回溯遍历,代码如下:
#include<cstdio> #include<cstring> int mark[10000],k,sign; char str[100],a[10000][2]; void dfs(int x) { int i; if(a[x][1]=='m') sign=1; else { for(i=0;i<k;i++) { if(!mark[i]&&a[x][1]==a[i][0]) { mark[i]=1; dfs(i); mark[i]=0; } } } } int main() { int len,i; while(scanf("%s",str)!=EOF) { k=0;sign=0; len=strlen(str); a[k][0]=str[0]; a[k][1]=str[len-1]; k++; while(scanf("%s",str)&&strcmp(str,"0")!=0) { len=strlen(str); a[k][0]=str[0]; a[k][1]=str[len-1]; k++; } for(i=0;i<k;i++) { if(a[i][0]=='b') { memset(mark,0,sizeof(mark)); mark[i]=1; dfs(i); } if(sign) break; } if(sign) printf("Yes.\n"); else printf("No.\n"); } return 0; }