UVA 784 - Maze Exploration
水题,了解了dfs后,这样的题就水的很了。
代码如下:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
char ch[50][100];
void dfs(int i, int j)
{
if(ch[i][j] == '#'||ch[i][j]=='X')return;
ch[i][j] = '#';
dfs(i-1, j-1);dfs(i-1, j);dfs(i-1, j+1);
dfs(i, j-1); dfs(i, j+1);
dfs(i+1, j-1);dfs(i+1, j);dfs(i+1, j+1);
}
int main ()
{
int n, d;
cin>>n;cin.ignore();
while(n--)
{
memset(ch,'X',sizeof(ch));
for(int i = 0;; i++)
{
gets(ch[i]);
if(ch[i][0] == '_')
{
d = i;
break;
}
}
for(int i = 0; i < d; i++)
for(int j = 0; ch[i][j]; j++)
{
if(ch[i][j] == '*')
{
ch[i][j] = ' ';
dfs(i, j);
}
}
for(int i = 0; i <= d; i++,cout<<endl)
for(int j = 0; ch[i][j];j++)
cout<<ch[i][j];
}
return 0;
}
浙公网安备 33010602011771号