标签:
DFS
没什么好说的 新id在poj交的第一题,应该选G++而不是GCC的。无辜CE三次。好像不能命名数组名为map也会CE的。
代码
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <stack> 5 #include <iomanip> 6 #include <algorithm> 7 using namespace std; 8 9 char ma[25][25]; 10 int sx,sy,n,m,ans; 11 int dx[]={0,0,-1,1}; 12 int dy[]={1,-1,0,0}; 13 #define judge(x,y) 0<=x && x<n && 0<=y && y<m && ma[x][y] == ‘.‘ 14 15 void dfs(int x,int y) 16 { 17 ma[x][y]=‘#‘; 18 ans++; 19 20 for(int i=0;i<4;i++) 21 { 22 int fx=x+dx[i];int fy=y+dy[i]; 23 if(judge(fx,fy)) 24 { 25 dfs(fx,fy); 26 } 27 } 28 } 29 int main() 30 { 31 while(cin>>m>>n) 32 { 33 ans=0; 34 if(m==0 && n==0 ) break; 35 for(int i=0;i<n;i++) 36 { 37 for(int j=0;j<m;j++) 38 { 39 cin>>ma[i][j]; 40 if( ma[i][j] == ‘@‘) 41 { 42 sx=i; 43 sy=j; 44 } 45 } 46 47 } 48 dfs(sx,sy); 49 cout<<ans<<endl; 50 } 51 52 return 0; 53 }
标签:
原文地址:http://www.cnblogs.com/luosuo10/p/5397683.html