标签:
| Time Limit: 1000MS | Memory Limit: 30000K | |
| Total Submissions: 25228 | Accepted: 13605 |
Description
Input
Output
Sample Input
6 9 ....#. .....# ...... ...... ...... ...... ...... #@...# .#..#. 11 9 .#......... .#.#######. .#.#.....#. .#.#.###.#. .#.#..@#.#. .#.#####.#. .#.......#. .#########. ........... 11 6 ..#..#..#.. ..#..#..#.. ..#..#..### ..#..#..#@. ..#..#..#.. ..#..#..#.. 7 7 ..#.#.. ..#.#.. ###.### ...@... ###.### ..#.#.. ..#.#.. 0 0
Sample Output
45 59 6 13
#include<stdio.h>
#include<string.h>
#define MAX 25
char str[MAX][MAX];
int n,m,sum;
void dfs(int x,int y)
{
int i,j;
if(0<=x&&x<m&&0<=y&&y<n&&str[x][y]==‘.‘)
{
str[x][y]=‘#‘;//将判断过的点封死(即不能再在上边行走)
sum++; //当当前点是"."时满足条件 sum自加1
dfs(x-1,y);//搜索当前点下部
dfs(x+1,y);//搜索当前点上部
dfs(x,y-1);//搜索当前点左部
dfs(x,y+1);//搜索当前点右部
}
return ;
}
int main()
{
int j,i,s;
while(scanf("%d%d",&n,&m)&&n!=0&&m!=0)
{
for(i=0;i<m;i++)
scanf("%s",str[i]);
sum=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(str[i][j]==‘@‘)
{
str[i][j]=‘.‘;
dfs(i,j);
}
}
}
printf("%d\n",sum);
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/tonghao/p/4575064.html