Red and Black
不能说什么了,爆恶心的DFS水题,居然用C++总是错误,是我还是不熟悉,还是人品出问题了?
// File Name: hdu1312dfs.cpp
// Author: rudolf
// Created Time: 2013年04月22日 星期一 22时19分26秒
#include<stdio.h>
int dis[4][2]={1,0,-1,0,0,1,0,-1};
int m,n,x1,y1,sum;
char mapp[25][25];
void dfs(int x2,int y2)
{
int i;
sum++;
for(i=0;i<4;i++)
{
int x=x2+dis[i][0];
int y=y2+dis[i][1];
if(x>=0&&x<n&&y>=0&&y<m&&mapp[x][y]=='.')
{
mapp[x][y]='#' ;
dfs(x,y);
}
}
}
int main()
{
int i,j;
//freopen("int.txt","r",stdin);
while(scanf("%d%d",&m,&n)!=EOF)
{
getchar();
if(m==0&&n==0)
break;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%c",&mapp[i][j]);
if(mapp[i][j]=='@')
{
x1=i;
y1=j;
}
}
getchar();
}
sum=0;
mapp[x1][y1]='#';
dfs(x1,y1);
printf("%d\n",sum);
}
return 0;
}