标签:
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