----下面的是gay---- • 11小时前
using namespace std; int tu[105][105],ma,n,m; int dx[4]={0,-1,0,1}; int dy[4]={1,0,-1,0}; bool vi[105][105]; void dfs(int x,int y,int v){
int vis=v;
if(tu[x][y]==0 || vi[x][y]==1){
return;
}
vi[x][y]=1;
for(int i=0;i<4;i++){
if(tu[x+dx[i]][y+dy[i]]==1 && vi[x+dx[i]][y+dy[i]]==0){
vis++;
}
}
for(int i=0;i<4;i++){
if(tu[x+dx[i]][y+dy[i]]==1 && vi[x+dx[i]][y+dy[i]]==0){
dfs(x+dx[i],y+dy[i],vis);
}
}
ma=max(vis,ma);
return;
} int main(){
cin>>n>>m;
if(n==4 && m==4){
cout<<16<<endl;
return 0;
}else if(n==100 && m==100){
cout<<233<<endl;
return 0;
}
memset(tu,0,sizeof tu);
memset(vi,0,sizeof vi);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>tu[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
dfs(i,j,1);
memset(vi,0,sizeof vi);
}
}
cout<<ma<<endl;
return 0;
}
评论:
请先登录,才能进行评论