标签:
http://poj.org/problem?id=2386
http://acm.hdu.edu.cn/showproblem.php?pid=1241
求有多少个连通子图。复杂度都是O(n*m)。
1 #include <cstdio> 2 3 char filed[110][110]; 4 int n,m; 5 void dfs(int x,int y) 6 { 7 for(int i=-1;i<=1;i++) 8 for(int j=-1;j<=1;j++) //循环遍历8个方向 9 { 10 int xx=x+i,yy=y+j; 11 if(xx>=0&&xx<n&&yy>=0&&yy<m&&filed[xx][yy]==‘W‘) 12 { 13 filed[xx][yy]=‘.‘; 14 dfs(xx,yy); 15 } 16 } 17 return; 18 } 19 20 int main() 21 { 22 //freopen("a.txt","r",stdin); 23 while(~scanf("%d%d",&n,&m)) 24 { 25 getchar(); 26 int count=0; 27 for(int i=0;i<n;i++) scanf("%s",filed[i]); 28 for(int i=0;i<n;i++) 29 for(int j=0;j<m;j++) 30 if(filed[i][j]==‘W‘) 31 { 32 dfs(i,j); 33 count++; 34 } 35 printf("%d\n",count); 36 } 37 return 0; 38 }
poj - 2386 Lake Counting && hdoj -1241Oil Deposits (简单dfs)
标签:
原文地址:http://www.cnblogs.com/nowandforever/p/4518185.html