572 - Oil Deposits

来源:互联网 发布:js 找不到function 编辑:程序博客网 时间:2024/04/28 22:38
/*简单连通图问题,采用深度优先搜索即可题意:油矿之间存在联系(行,列,或对角线相连),则属于一块。输出图中共存在多少油矿*/#include <cstdio>#include <cstring>int m,n;char G[105][105];int count;void dfs(int r,int c){if(G[r][c]=='@'){G[r][c]='*';//这里使用有技巧,排版整齐,容易查错!dfs(r-1,c-1);dfs(r-1,c);dfs(r-1,c+1);dfs(r,c-1);dfs(r,c+1);dfs(r+1,c-1);dfs(r+1,c);dfs(r+1,c+1);}}int main(){//freopen("data.in","r",stdin);while(scanf("%d %d",&m,&n)==2){if(m==0)break;count=0;memset(G,0,sizeof(G));for(int i=1;i<=m;i++){getchar();for(int j=1;j<=n;j++)G[i][j]=getchar();}for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){if(G[i][j]=='@'){count++;dfs(i,j);}}}printf("%d\n",count);}return 0;}