poj 1979 简单深搜 一次 ac 不解释

#include<iostream>
#include<cstring>
//#include<fstream>
using namespace std;

int bmp[4][2]={{0,1},{0,-1},{1,0},{-1,0}};

char num[25][25];
int m,n,sum;
bool cheak(int a,int b)
{
if(a >= 1 && a <= m && b >= 1 && b <= n)
return true;
return false;

}
void dfs(int x,int y)
{
int a,b;

num[x][y] = '#';
for(int i=0;i<4;i++)
{
a = x + bmp[i][0];
b = y + bmp[i][1];
if(cheak(a,b) && num[a][b] != '#' )
{

dfs(a,b);
sum ++;
}
}
}
int main()
{
//ifstream cin("in.txt");
int a,b,i,j;
while(cin>>n>>m,m+n)
{
memset(num,0,sizeof(num));
sum = 1;
for( i=1;i<=m;i++)
{
for( j=1;j<=n;j++)
{
cin>>num[i][j];
if(num[i][j] == '@' )
{
a = i;
b = j;
}

}
}

dfs(a,b);
cout<<sum<<endl;

}
}

原文地址:https://www.cnblogs.com/lfyy/p/2762793.html