您的位置:首页 > 其它

HDU 1241

2014-04-30 18:35 204 查看

#include<stdio.h>
char str[102][102];
int d[8][2]={1,1, 1,-1, -1,1, -1,-1, 0,1, 0,-1, 1,0, -1,0};
int m,n;
void dfs(int x,int y)
{
    str[x][y] = '*';
    int i,nx,ny;
    for(i = 0;i <= 7;i ++)
    {
        nx = x+d[i][0];
        ny = y+d[i][1];
        if(nx > -1 && nx < m && ny > -1 && ny < n && str[nx][ny] == '@')
              dfs(nx,ny);
    }
    return ;
}

int main()
{
    int t,k,cnt;
    while(~scanf("%d%d",&m,&n)&&m)
    {
        cnt = 0;
        for(t = 0;t < m;t ++)
            scanf("%s",str[t]);
        for(t = 0;t < m;t ++)
        {
            for(k = 0;k < n;k ++)
            {
                if(str[t][k] == '@')
                {
                    dfs(t,k);
                    cnt++;
                }
            }
        }
        printf("%d\n",cnt);
    }
    return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: