标签:
6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
11 9
.#.........
.#.#######.
.#.#.....#.
.#.#.###.#.
.#.#..@#.#.
.#.#####.#.
.#.......#.
.#########.
...........
11 6
..#..#..#..
..#..#..#..
..#..#..###
..#..#..#@.
..#..#..#..
..#..#..#..
7 7
..#.#..
..#.#..
###.###
...@...
###.###
..#.#..
..#.#..
0 0
题解: 求 “.”数, 注意 行和列 吧... 找了好久才找到错在哪里...
代码:
1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #include <limits.h> 5 #include <algorithm> 6 #include <iostream> 7 #include <ctype.h> 8 #include <iomanip> 9 #include <queue> 10 #include <map> 11 #include <stdlib.h> 12 using namespace std; 13 14 int ans,m,n; 15 char v[30][30]; 16 int dx[4]={0,0,1,-1}; 17 int dy[4]={1,-1,0,0}; 18 19 void dfs(int x,int y) 20 { 21 ans++; 22 v[x][y]=‘#‘; 23 for(int k=0;k<4;k++){ 24 int px=x+dx[k]; 25 int py=y+dy[k]; 26 if(v[px][py]==‘.‘ && py<m && px<n && px>=0 && py>=0){ 27 dfs(px,py); 28 } 29 } 30 } 31 32 int main() 33 { 34 while(~scanf("%d%d",&m,&n)&&m!=0&&n!=0){ 35 int e,d,i,j; 36 for(i=0;i<n;i++) 37 scanf("%s",v[i]); 38 for(i=0;i<n;i++){ 39 for(j=0;j<m;j++){ 40 if(v[i][j]==‘@‘){ 41 e=i; 42 d=j; 43 } 44 } 45 } 46 ans=0; 47 dfs(e,d); 48 printf("%d\n",ans); 49 } 50 }
标签:
原文地址:http://www.cnblogs.com/wangmengmeng/p/5035895.html