求助#6#8#10RE
查看原帖
求助#6#8#10RE
765484
LiuQingMing楼主2023/10/19 17:54
#include <iostream>
using namespace std;
typedef long long ll;
char a;
struct zuobiao{
	int x,y;
}q[101];
bool map[101][101],p[101][101];
int n,m;
int ans;
int c[4][2]={0,1,1,0,-1,0,0,-1};
void bfs(int x,int y){
	ans++;
	int f=0,r=1,X,Y;
	q[1].x=x;
	q[1].y=y;
	while(f<r){
		f++;
		X=q[f].x,Y=q[f].y;

		p[X][Y]=1;
		for(int i=0;i<4;i++){
			int xx=X+c[i][0];
			int yy=Y+c[i][1];
			if(map[xx][yy]&&(!p[xx][yy])){
				q[++r].x=xx;
				q[r].y=yy;
			}
		}
	}

}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
	for(int j=1;j<=m;j++){
		cin>>a;
		map[i][j]=(a!='0');
	}
}
for(int i=1;i<=n;i++){
	for(int j=1;j<=m;j++){
		if(!p[i][j]&&map[i][j]){
			bfs(i,j);
		}
	}
}
cout<<ans;
	return 0;
}
2023/10/19 17:54
加载中...