poj1979-dfs

来源:互联网 发布:腾讯股票数据接口 编辑:程序博客网 时间:2024/05/18 16:37

dfs的入门题,水~。。。(注意判断条件就行了)

#include<cstdio>#include<iostream>#include<cstring>using namespace std;char ma[25][25];bool vis[25][25];int dx[4]={-1,0,1,0};int dy[4]={0,1,0,-1};int m,n;int cnt;void dfs(int x,int y){    int x1,y1;    vis[x][y]=1;    //printf("x:%d,y:%d\n",x,y);    cnt++;    for(int i=0;i<4;i++)    {        x1=x+dx[i];        y1=y+dy[i];        if(x1<m&&x1>=0&&y1<n&&y1>=0&&vis[x1][y1]!=1&&ma[x1][y1]=='.')            dfs(x1,y1);    }}int main(){    while(~scanf("%d%d",&n,&m)&&m&&n)    {        cnt=0;        memset(vis,0,sizeof(vis));        memset(ma,'\0',sizeof(ma));        for(int i=0;i<m;i++)            scanf("%s",ma[i]);        for(int i=0;i<m;i++)            for(int j=0;j<n;j++)            if(ma[i][j]=='@')            {                dfs(i,j);                break;            }        printf("%d\n",cnt);    }    return 0;}

原创粉丝点击