#include<stdio.h> char g[102][102]; const int dir[8][2]={{-1,-1},{-1,0},{0,-1},{1,0},{0,1},{1,1},{1,-1},{-1,1}};//八个方向 int m,n; bool ok(int a,int b) { if(a>=0&&a<=m&&b>=0&&b<=n) return true; return false; } void dfs(int a,int b) { int i; g[a][b]=‘*‘; for(i=0;i<8;i++) { if(ok(a+dir[i][0],b+dir[i][1])&&g[a+dir[i][0]][b+dir[i][1]]==‘@‘)//判断领边是否满足条件 dfs(a+dir[i][0],b+dir[i][1]); } } int main() { int i,j,count; while(scanf("%d%d",&m,&n)!=EOF) { getchar(); if(m==0) break; for(i=1;i<=m;i++) { for(j=1;j<=n;j++) scanf("%c",&g[i][j]); getchar(); } count=0; for(i=1;i<=m;i++) { for(j=1;j<=n;j++) { if(g[i][j]==‘@‘) { dfs(i,j); count++; } } } printf("%d\n",count); } return 0; }
hdu 1241 Oil Deposits,布布扣,bubuko.com
原文:http://www.cnblogs.com/duan-to-success/p/3662885.html