您的位置:首页 > 其它

hdu 变形课(简单搜索)

2014-02-05 17:59 309 查看
/*

用二位数组保存数据,接着一行一行搜

*/

#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int mark[30][30], dis[30];
bool p = false;

void work(int ch)
{
int i;
if(ch == 12)
p = true;
for( i=0; i < 26; i++ )
{
if(mark[ch][i] == 1 && dis[i] == 0)
{
dis[i] = 1;
work(i);
}
}
}

int main()
{
char str[100];
memset(mark, 0, sizeof(mark));
memset(dis, 0, sizeof(dis));
while(scanf("%s", str) != -1)
{
p = false;
if(strcmp(str, "0")==0)
{
printf("No.\n");
continue;
}
int len;
len = strlen(str);
mark[str[0]-'a'][str[len-1]-'a'] = 1;
while(scanf("%s", str) && strcmp(str,"0"))
{
len = strlen(str);
mark[str[0]-'a'][str[len-1]-'a'] = 1;
}
dis[1] = 1;
work(1);
if(p)
printf("Yes.\n");
else
printf("No.\n");
memset(dis, 0, sizeof(dis));
memset(mark, 0, sizeof(mark));
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: