题解
2024-08-31 19:24:22
发布于:广东
0阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
bool visit[101][101];
int test=0,n,m,a[101][101];
int dis[4][2] = {0,1,1,0,0,-1,-1,0};
void dfs(int x,int y)
{
visit[x][y] = 1;
test++;
for (int i=0;i<4;i++)
{
int dx = x + dis[i][0];
int dy = y + dis[i][1];
if (dx < 0 || dx >= n || dy < 0 || dy >= m)continue;
if (a[dx][dy] == 0 || visit[dx][dy])continue;
dfs(dx,dy);
}
}
int main()
{
cin >> n >> m;
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
cin >> a[i][j];
}
}
int max1=0;
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
if (a[i][j] == 1 && visit[i][j] == 0)
{
dfs(i,j);
max1 = max(max1,test);
test = 0;
}
}
}
cout << max1;
return 0;
}
这里空空如也
有帮助,赞一个