标签:als stream iostream org ace osi ems isp ios
一矩形阵列由数字0
到9组成,数字1到9
代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。如:
阵列
4 10 0234500067 1034560500 2045600671 0000000089
有4
个细胞。
第一行为矩阵的行n
和列m
;
下面为一个n×m
的矩阵。
细胞个数。
4 10 0234500067 1034560500 2045600671 0000000089
4
#include<iostream> #include<queue> #include<cstring> using namespace std; #define N 100 struct qs{ int x,y; }; int n,m,ans; char map[N][N]; bool maps[N][N]; int xs[]={0,0,-1,1}; int ys[]={1,-1,0,0}; queue < qs >q; int main() { cin>>n>>m; memset(maps,false,sizeof(maps)); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { cin>>map[i][j]; if(map[i][j]!=‘0‘)maps[i][j]=true; } for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(maps[i][j]==true) { // maps[i][j]=f qs tmp; tmp.x=i;tmp.y=j; q.push(tmp); while(!q.empty()) { qs tmp1=q.front(); q.pop(); for(int ks=0;ks<4;ks++) { int x1,y1; x1=tmp1.x+xs[ks]; y1=tmp1.y+ys[ks]; if(maps[x1][y1]==true&&x1>=1&&x1<=n&&y1<=m&&y1>=1) { qs df; df.x=x1; df.y=y1; maps[x1][y1]=false; q.push(df); } } } ans++; } } cout<<ans<<endl; }
标签:als stream iostream org ace osi ems isp ios
原文地址:https://www.cnblogs.com/jzxnl/p/11136878.html