#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
char mapp[35][85];
int vis[35][85];
int p;
int dir[][2]={{0,1},{0,-1},{1,0},{-1,0}};
void dfs(int x,int y)
{
for(int i=0;i<4;i++)
{
int nx=x+dir[i][0];
int ny=y+dir[i][1];
if(nx>=0 && nx<p && ny>=0 &&ny<strlen(mapp[nx])&&vis[nx][ny]==0&&mapp[nx][ny]==' ')
{
vis[nx][ny]=1;
mapp[nx][ny]='#';
dfs(nx,ny);
}
}
}
int main()
{
int t;
scanf("%d",&t);
getchar();
while(t--)
{
memset(vis,0,sizeof(vis));
int i=0;
while(1)
{
gets(mapp[i++]);
if(mapp[i-1][0]=='_')
break;
}
p=i;
for(int j=0;j<p;j++)
for(int k=0;k<strlen(mapp[j]);k++)
if(mapp[j][k]=='*'&&!vis[j][k])
{
mapp[j][k]='#';
vis[j][k]=1;
dfs(j,k);
}
for(int j=0;j<p;j++)
printf("%s\n",mapp[j]);
}
return 0;
}
uva 784 DFS 染色问题。有坑点。一个getchar()
最新推荐文章于 2023-07-08 16:55:37 发布