标签:lang and ons turn dfs etc 深度 eof oom
http://poj.org/problem?id=1979
Description
Input
Output
1 #include <stdio.h> 2 char ch[24][24]; 3 void solve(int H,int W); 4 void find1(int H,int W); 5 void dfs(int x,int y,int H,int W); 6 int main() 7 { 8 int H,W,i; 9 while(scanf("%d%d",&W,&H)!=EOF&&H!=0&&W!=0) 10 { 11 getchar(); 12 for(i=0;i<H;i++) 13 gets(ch[i]); 14 find1(H,W); 15 solve(H,W); 16 } 17 return 0; 18 } 19 20 void solve(int H,int W) 21 { 22 int a=0; 23 for(int i=0;i<H;i++) 24 for(int k=0;k<W;k++) 25 if(ch[i][k]==‘@‘) 26 a++; 27 printf("%d\n",a); 28 } 29 30 void find1(int H,int W) 31 { 32 for(int i=0;i<H;i++) 33 for(int k=0;k<W;k++) 34 if(ch[i][k]==‘@‘) 35 { 36 dfs(i,k,H,W); 37 return; 38 } 39 } 40 41 void dfs(int x,int y,int H,int W) 42 { 43 int x1,y1,nx,ny; 44 ch[x][y]=‘@‘; 45 for(x1=-1;x1<=1;x1++) 46 { 47 nx=x+x1; 48 if(nx>=0&&nx<H&&ch[nx][y]!=‘#‘&&ch[nx][y]!=‘@‘) 49 dfs(nx,y,H,W); 50 } 51 for(y1=-1;y1<=1;y1++) 52 { 53 ny=y+y1; 54 if(ny>=0&&ny<W&&ch[x][ny]!=‘#‘&&ch[x][ny]!=‘@‘) 55 dfs(x,ny,H,W); 56 } 57 return; 58 }
挑战程序2.1.4 穷竭搜索>>深度优先搜索 练习题 POJ1979黑与红
标签:lang and ons turn dfs etc 深度 eof oom
原文地址:http://www.cnblogs.com/tony-/p/6142346.html