您的位置:首页 > 其它

UVA 784 - Maze Exploration(简单DFS)

2012-07-04 08:48 281 查看
题目链接

网速真不好啊,题目挺简单的,变量名打错WA了一次。

#include <stdio.h>
#include <string.h>
char p[101][101];
int a[5] = {0,0,1,-1};
int b[5] = {1,-1,0,0};
int num[101],len;
void dfs(int x,int y)
{
int i;
if(p[x][y] == 'X'||p[x][y] == '#')
return ;
else
p[x][y] = '#';
for(i = 0;i <= 3;i ++)
{
if(x+a[i] >= 0&&x+a[i] <= len&& y+b[i]>=0&&y+b[i]<= num[i]-1)
{
dfs(x+a[i],y+b[i]);
}
}
return ;
}
int main()
{
int i,j,k,t,z;
scanf("%d%*c",&t);
while(t--)
{
memset(num,0,sizeof(num));
z = 1;
for(i = 0;;i ++)
{
gets(p[i]);
num[i] = strlen(p[i]);
if(strcmp("_____",p[i])==0)
break;
}
len = i;
for(i = 0;i <= len&&z;i ++)
for(j = 0;j <= num[i]-1;j ++)
{
if(p[i][j] == '*')
{
z = 0;
break;
}
}
dfs(i,j);
for(i = 0;i <= len;i ++)
printf("%s\n",p[i]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: