第一次写搜索题
好不容易写出来
发现函数里的循环用的ijk这种东西不能用全局变量!
http://acm.hdu.edu.cn/showproblem.php?pid=1241
#include<iostream>
using namespace std;
int n,m,i,j;
char a[105][105];
int d[8][2]={{1,0},{-1,0},{0,1},{0,-1},{1,1},{-1,1},{1,-1},{-1,-1}};
Dfs(int x,int y)
{
int tx,ty;
for(int k=0;k<8;k++)//函数里的这个k不能用全局变量
{
tx=x+d[k][0];
ty=y+d[k][1];
if(tx>=1&&tx<=n&&ty>=1&&ty<=m)
{
if(a[tx][ty]=='@')
{
a[tx][ty]='*';
Dfs(tx,ty);
}
}
}
}
int main()
{
while(cin>>n>>m)
{
if(n==0&&m==0)
break;
int sum=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>a[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if(a[i][j]=='@')
{
sum++;
a[i][j]='*';
Dfs(i,j);
}
}
cout<<sum<<endl;
}
return 0;
}