标签:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 11531 Accepted Submission(s): 7177
6 9 ....#. .....# ...... ...... ...... ...... ...... #@...# .#..#. 11 9 .#......... .#.#######. .#.#.....#. .#.#.###.#. .#.#..@#.#. .#.#####.#. .#.......#. .#########. ........... 11 6 ..#..#..#.. ..#..#..#.. ..#..#..### ..#..#..#@. ..#..#..#.. ..#..#..#.. 7 7 ..#.#.. ..#.#.. ###.### ...@... ###.### ..#.#.. ..#.#.. 0 0
45 59 6 13
#include <stdio.h> #include <string.h> int n,m,cnt; char map[30][30]; int to[4][2] = {{1,0},{0,1},{-1,0},{0,-1}}; void dfs(int i,int j) { int k,x,y; cnt++; map[i][j] = '#'; for(k = 0; k<4; k++) { x = i + to[k][0]; y = j + to[k][1]; if(x<n && y<m && x>=0 && y>=0 && map[x][y] == '.')//控制 x,y不让它越界 dfs(x,y); } } int main() { int i,j,fi,fj; while(scanf("%d%d%",&m,&n))//横向为 n,纵向为 m { if(m==0&&n==0) break; for(i = 0; i<n; i++) { for(j = 0; j<m; j++) { scanf("%c",&map[i][j]); if(map[i][j] == '@')//找到刚开始人所在的位置 { fi = i; fj = j; } } getchar(); } cnt = 0; dfs(fi,fj); printf("%d\n",cnt); } return 0; }
标签:
原文地址:http://blog.csdn.net/qq_16767427/article/details/44873233