Oil Deposits
Posted Thunder-ray
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oil Deposits相关的知识,希望对你有一定的参考价值。
1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 using namespace std; 5 6 int n,m,cnt; 7 char mp[110][110]; 8 bool vis[110][110]; 9 int dir[8][2]={{1,0},{1,1},{1,-1},{0,1},{0,-1},{-1,0},{-1,1},{-1,-1}}; 10 11 void dfs(int x,int y) //对每个@ 都寻找旁边八个方向的@ ,并标记,成为一个整体 12 { 13 for(int i=0;i<8;i++) 14 { 15 int dx= x+dir[i][0]; 16 int dy= y+dir[i][1]; 17 if(dx<0||dx>n-1||dy<0||dy>m-1) 18 continue; 19 if(mp[dx][dy]==‘@‘&&vis[dx][dy]==0) 20 { 21 vis[dx][dy]=1; 22 dfs(dx,dy); 23 } 24 } 25 } 26 27 int main() 28 { 29 while(cin>>n>>m &&n &&m) 30 { 31 memset(vis,0,sizeof(vis)); 32 cnt=0; 33 34 for(int i=0;i<n;i++) 35 cin>>mp[i]; 36 for(int i=0;i<n;i++) 37 { 38 for(int j=0;j<m;j++) 39 { 40 if(mp[i][j]==‘@‘&&vis[i][j]==0) 41 { 42 cnt++; 43 dfs(i,j); 44 } 45 } 46 } 47 cout<<cnt<<endl; 48 } 49 }
以上是关于Oil Deposits的主要内容,如果未能解决你的问题,请参考以下文章