题目连接:http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1000&ojid=0&cid=6837&hide=0
区别于其他的 此代码本人认为简单明了,一看就懂的类型,代码如下:
# include"stdio.h"
# include<iostream>
using namespace std;
int m,n;
char map[100][100];
void dfs(int i,int j)
{
if(map[i][j]!='@'||i<0||j<0||i>=m||j>=n) return;
else
{
map[i][j]='!';
dfs(i,j+1);
dfs(i,j-1);
dfs(i+1,j+1);
dfs(i+1,j-1);
dfs(i+1,j);
dfs(i-1,j);
dfs(i-1,j+1);
dfs(i-1,j-1);
}
}
int main()
{
int i,j,sum;
while(cin>>m>>n)
{
if(m==0||n==0) break;
sum=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
cin>>map[i][j];
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(map[i][j]=='@')
{
dfs(i,j);
sum++;
}
}
}
cout<<sum<<endl;
}
return 0;
}