题解
2023-05-27 17:13:40
发布于:上海
36阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
const int N=109;
int d[N][N];
int dx[8]={0,1,0,-1,1,1,-1,-1};
int dy[8]={1,0,-1,0,-1,1,1,-1};
int n,m;
int c=0;
void dfs(int x ,int y)
{
c++;
d[x][y]='.';
for(int k =0;k<4;k++)
{
int nx=x+dx[k],ny=y+dy[k];
if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&d[nx][ny]==1)
{
dfs(nx,ny);
}
}
}
int main()
{
cin>>n>>m;
for(int i =1;i<=n;i++)
{
for(int j =1;j<=m;j++)
{
cin>>d[i][j];
}
}
int ans=0;
for(int i =1;i<=n;i++)
{
for(int j =1;j<=m;j++)
{
if(d[i][j]==1)
{
c=0;
dfs(i,j);
ans=max(ans,c);
}
}
}
cout<<ans<<endl;
return 0;
}
这里空空如也
有帮助,赞一个