20分,求助
查看原帖
20分,求助
1058985
tarelshy楼主2023/8/15 09:36

大佬,求帮助

#include<bits/stdc++.h>
using namespace std;
int vis[101][101];
int BX[6] = {0,1,0,-1,0};
int BY[6] = {0,0,-1,0,1};
int tarelshy;
int n , m;
void bfs(int x,int y)
{
	vis[x][y] = 0;
	for(int i = 1;i <= 4;i ++)
	{
		int X = x + BX[i];
		int Y = y + BY[i];
		if(X >= 1 &&Y >= 1 && X<n && Y<m && vis[X][Y] != 0)
		
		{
			bfs(X,Y);
		}
		x = X - BX[i];
		y = Y - BY[i];
	}
	return ;
}
int main()
{
	cin >> n >> m;
	for(int i = 1;i <= n;i ++)
	{
		for(int j = 1;j <= m;j ++)
		{
			scanf("%1d",&vis[i][j]);
		}
	}
	for (int i = 1;i <= n;i ++)
	{
		for (int j=1;j <= m;j ++)
		{
			if (vis[i][j] == 0)
			{
				continue ;
			}
			bfs(i,j);
		}
		tarelshy++;
	}
	cout << tarelshy << endl;
	return 0;
}

2023/8/15 09:36
加载中...