uva 784 DFS 染色问题。有坑点。一个getchar()

来源:互联网 发布:淘宝可以买男朋友链接 编辑:程序博客网 时间:2024/06/08 19:28
#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;}

0 0
原创粉丝点击