http://acm.hdu.edu.cn/showproblem.php?pid=1241
水题
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "math.h"
int m,n;
int i,j,k,visit[100][100];
char a[100][100];
int main()
{
void dfs(int ,int );
while(scanf("%d%d",&m,&n)!=EOF && m && n )
{
for(int i=0;i<m;i++)
{
scanf("%s",a[i]);
for(int j=0;j<n;j++)
a[i+1][j+1]='*';
}
int count=0;
memset(visit,0,sizeof(visit));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(!visit[i][j] && a[i][j]=='@')
{
count++;
dfs(i,j);
}
printf("%d\n",count);
}
}
void dfs(int i,int j )
{
if(!visit[i][j] && a[i][j]=='@')
{
visit[i][j]=1;
dfs(i-1,j-1);dfs(i-1,j);dfs(i-1,j+1);
dfs(i,j-1); dfs(i,j+1);
dfs(i+1,j-1);dfs(i+1,j);dfs(i+1,j+1);
}
}