hdu 1241 DFS

来源:互联网 发布:app数据统计模板 编辑:程序博客网 时间:2024/05/01 13:38
#include <iostream>#include <cstring>#include <cstdio>using namespace std;char map[105][105];int xx[8]={0,1,0,-1,1,-1,1,-1};int yy[8]={1,0,-1,0,1,-1,-1,1};int s=0;void DFS(int i,int j);void DFS_Tra(int n,int m){    int i,j;    for(i=1;i<=n;i++)    {        for(j=1;j<=m;j++)        {            if(map[i][j]!='*')            {                DFS(i,j);                s++;            }        }    }}void DFS(int i,int j){    int k,t1,t2;    map[i][j]='*';    for(k=0;k<8;k++)    {        t1=i+xx[k];        t2=j+yy[k];        if(map[t1][t2]=='*')            continue;        DFS(t1,t2);    }}int main(){    int n,m;    while(scanf("%d%d",&n,&m))    {        if(n==0&&m==0)            break;        int i;        s=0;        for(i=1;i<=n;i++)        {            scanf("%s",map[i]+1);        }        for(i=0;i<=n+1;i++)            map[i][0]=map[i][m+1]='*';        for(i=0;i<=m+1;i++)            map[0][i]=map[n+1][i]='*';        DFS_Tra(n,m);        printf("%d\n",s);    }    return 0;}

原创粉丝点击