1 条题解

  • 0
    @ 2024-12-22 11:03:59

    C++ :

    #include<bits/stdc++.h>
    #define N 50
    using namespace std;
    int n,m,a[N][N],ans1,ans2,cnt;
    int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
    void dfs(int x,int y){
    	if(x<1||x>n||y<1||y>m||a[x][y]==0)return;
    	cnt++;
    	for(int i=0;i<4;i++){
    		a[x][y]=0;
    		int xx=x+dx[i];
    		int yy=y+dy[i];
    		dfs(xx,yy);
    	}
    }
    int main()
    {
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    			cin>>a[i][j];
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=m;j++){
    			if(a[i][j]==1){
    				cnt=0;
    				dfs(i,j);
    				ans1++;
    				ans2=max(ans2,cnt);
    			}
    		}
    	}
    	cout<<ans1<<endl<<ans2;
    	return 0;
    }
    
    • 1

    信息

    ID
    167
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    (无)
    递交数
    2
    已通过
    4
    上传者