标签:
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 char str[25][25]; 6 int vis[25][25],w,h,sum; 7 int x[]={-1,1,0,0}; 8 int y[]={0,0,-1,1}; 9 void dfs(int i,int j) 10 { 11 for(int k=0; k<4; k++) 12 { 13 if(i+x[k]<h&&i+x[k]>=0&&j+y[k]<w&&j+y[k]>=0&&vis[i+x[k]][j+y[k]]==0&&str[i+x[k]][j+y[k]]!=‘#‘) 14 { 15 sum++; 16 vis[i+x[k]][j+y[k]]=1; 17 dfs(i+x[k],j+y[k]); 18 } 19 } 20 } 21 int main() 22 { 23 #ifdef CDZSC_OFFLINE 24 freopen("in.txt","r",stdin); 25 #endif 26 int i,j; 27 while(scanf("%d%d",&w,&h)&&w!=0&&h!=0) 28 { 29 memset(vis,0,sizeof(vis)); 30 sum=1; 31 for(i=0; i<h; i++) 32 { 33 scanf("%s",str[i]); 34 } 35 for(i=0; i<h; i++) 36 { 37 for(j=0; j<w; j++) 38 { 39 if(str[i][j]==‘@‘) 40 { 41 vis[i][j]=1; 42 dfs(i,j); 43 } 44 } 45 } 46 printf("%d\n",sum); 47 } 48 return 0; 49 }
标签:
原文地址:http://www.cnblogs.com/Wing0624/p/4253923.html