您的位置:首页 > 其它

hdu 1181 (搜索BFS,深搜DFS,并查集)

2013-04-05 12:12 375 查看
点击打开链接

刚开始RE了好几次;

#include"stdio.h"
#include"string.h"
#include"queue"
using namespace std;
int f;
int mark[26];
int map[26][26];
void bfs(int a)
{
queue<int>Q;
int i,t;
t=a;
Q.push(t);
mark[t]=1;
while(!Q.empty())
{
t=Q.front();
Q.pop();
for(i=0;i<26;i++)
{
if(map[t][i]==1&&mark[i]==0)
{
if(i==12)
{
f=1;break;
}
Q.push(i);
}
}
if(f==1)break;
}
}
int main()
{
char str[1001];
int t;
memset(map,0,sizeof(map));
memset(mark,0,sizeof(mark));
f=0;
while(gets(str))
{
if(str[0]=='0')
{
f=0;
bfs(1);
if(f==1){printf("Yes.\n");f=2;}
else {printf("No.\n");f=2;}
memset(mark,0,sizeof(mark));
memset(map,0,sizeof(map));
}
if(f!=2)//如果此时str=“0”就不需要执行这一步;
{
t=strlen(str);
map[str[0]-'a'][str[t-1]-'a']=1;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: