1 solutions

  • 0
    @ 2025-3-3 16:21:26

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    
    char a[110][110];
    bool f[110][110];
    int fx[4][2] = {{0,1},{1,0},{0,-1},{-1,0}};
    int c,n,m;
    
    void dfs(int x,int y){
    	f[x][y] = true;
    	int tx,ty;
    	for(int i = 0;i < 4;i++){
    		tx = x + fx[i][0];
    		ty = y + fx[i][1];
    		
    		if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&a[tx][ty]!='0'&&f[tx][ty]==false){
    			dfs(tx,ty);
    		}
    	}
    } 
    
    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]!='0'&&f[i][j]==false){
    				c++;
    				dfs(i,j);
    			}
    		}
    	}
    	
    	cout<<c;
    }
    
    • 1

    Information

    ID
    9949
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By