您的位置:首页 > 其它

POJ 1979 DFS

2016-05-20 10:41 113 查看
题目链接:http://poj.org/problem?id=1979

#include<cstring>
#include<iostream>
using namespace std;
int n=0,h=0,sum=0;
char aa[21][21];

void DFS(int p,int q)
{
if(aa[p][q]=='.'&&p>=0&&p<h&&q>=0&&q<n)
{
sum++;
aa[p][q]='#';
}
else return ;
DFS(p-1,q);
DFS(p+1,q);
DFS(p,q-1);
DFS(p,q+1);
}
int main()
{

while(cin>>n>>h)
{ if(n==0||h==0)break;
int p=0,q=0;
sum=0;
memset(aa,0,sizeof(aa));
for(int i=0;i<h;i++)
for(int j=0;j<n;j++)
{

cin>>aa[i][j];

}
for(int i=0;i<h;i++)
for(int j=0;j<n;j++)
{
if(aa[i][j]=='@')
{
p=i;q=j;
aa[i][j]='.';
}

}
DFS(p,q);
cout<<sum<<endl;
}

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