题目链接:点击打开链接
题解:暴力dfs解决
代码:
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
typedef long long ll;
const int mx = 1e3+10;
int root,tot;
char str[mx];
vector<int> vec[26];
bool vis[26],vic[26];
void dfs(int x,int fa){
vis[x]=1;
for(int i=0;i<vec[x].size();i++){
int son=vec[x][i];
if(vis[son]) continue;
dfs(son,fa);
vis[son]=1;
}
}
int main(){
while(~scanf("%s",str)){
for(int i=0;i<26;i++) vec[i].clear();
while(str[0]!='0'){
vec[str[0]-'a'].push_back(str[strlen(str)-1]-'a');
scanf("%s",str);
}
memset(vis,0,sizeof(vis));
dfs('b'-'a','b'-'a');
puts(vis['m'-'a']?"Yes.":"No.");
}
return 0;
}