全部评论 2

  • ddd

    22小时前 来自 浙江

    0
  • #include<bits/stdc++.h>
    using namespace std;
    char a[1000][1000];
    int n,m,num=0;
    void dfs(int x,int y){
    	if(x-1>=0&&a[x-1][y]==1){
    		a[x-1][y]=0;
    		dfs(x-1,y);
    	}
    	if(y-1>=0&&a[x][y-1]==1){
    		a[x][y-1]=0;
    		dfs(x,y-1);
    	}
    	if(x+1<n&&a[x+1][y]==1){
    		a[x+1][y]=0;
    		dfs(x+1,y);
    	}
    	if(y+1<m&&a[x][y+1]==1){
    		a[x][y+1]=0;
    		dfs(x,y+1);
    	}
    }
    int main(){
    	cin>>n>>m;
    	for(int i=0;i<n;i++){
    		for(int j=0;j<m;j++){
    			char x;
    			cin>>x;
    			if(x=='0'){
    				a[i][j]=0;
    			}
    			else{
    				a[i][j]=1;
    			}
    		}
    	}
    	for(int i=0;i<n;i++){
    		for(int j=0;j<m;j++){
    			if(a[i][j]==1){
    				a[i][j]=0;
    				dfs(i,j);
    				num++;
    			}
    		}
    	}
        cout<<num;
    	return 0;
    }
    

    昨天 来自 浙江

    0

热门讨论