1 条题解

  • 0
    @ 2024-1-8 20:59:23
    #include<bits/stdc++.h>
    using namespace std;
     
    int ans,n,m;
    bool r[105][105];
    int q[4][2]={0,1,0,-1,1,0,-1,0};
    int s;
    void qwe(int x,int y){
    	for(int i=0;i<4;i++){
    		int t=q[i][0]+x,t1=q[i][1]+y;
    		if(r[t][t1]&&t>0&&t1>0&&t<=n&&t1<=m){
    			++s;
    			r[t][t1]=false;
    			qwe(t,t1);
    		}
    	}
    }
     
    int main(){
    	cin>>n>>m;
    	memset(r,false,sizeof(r));
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=m;j++){
    			int t;
    			cin>>t;
    			if(t==1)r[i][j]=true;
    		}
    	}
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=m;j++){
    			if(r[i][j]){
    				s=1;
    				r[i][j]=false;
    				qwe(i,j);
    				ans=max(ans,s);
    			}
    		}
    	}
    	cout<<ans<<'\n';
    	return 0;
    }
    

    信息

    ID
    782
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    49
    已通过
    27
    上传者