标签:== win bsp int company called dia pos containe
1 1 * 3 5 *@*@* **@** *@*@* 1 8 @@****@* 5 5 ****@ *@@*@ *@**@ @@@*@ @@**@ 0 0Sample Output
0 1 2 2
注意是八个方向相邻,找连通分支
代码:
#include <iostream> #include <cstdio> #include <cstring> #include <map> using namespace std; int n,m,vis[100][100]; char ma[100][100]; int dir[8][2]={0,1,1,0,0,-1,-1,0,1,1,1,-1,-1,1,-1,-1}; void dfs(int x,int y) { if(x<0||y<0||x>=n||y>=m||vis[x][y]||ma[x][y]!=‘@‘)return; vis[x][y]=1; for(int i=0;i<8;i++) { int tx=x+dir[i][0]; int ty=y+dir[i][1]; dfs(tx,ty); } } int main() { //ios::sync_with_stdio(false); //cin.tie(0); while(cin>>n>>m&&(n+m)) {int cou=0; map<int,int> num; memset(vis,0,sizeof(vis)); for(int i=0;i<n;i++) cin>>ma[i]; for(int i=0;i<n;i++) for(int j=0;j<m;j++) if(ma[i][j]==‘@‘&&!vis[i][j]) { dfs(i,j); cou++; } cout<<cou<<endl; } }
标签:== win bsp int company called dia pos containe
原文地址:http://www.cnblogs.com/8023spz/p/7231984.html