1 条题解

  • 0
    @ 2023-3-13 12:01:55

    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

    信息

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