ggg

1234  •  13小时前


include<bits/stdc++.h>

using namespace std; int grid[305][305]; void dfs(int grid[305][305],int i,int j,int m,int n){

if(i<0||i>=m||j<0||j>=n||grid[i][j]==1){
	return;
}
grid[i][j]=1;
dfs(grid,i+1,j,m,n);
dfs(grid,i-1,j,m,n);
dfs(grid,i,j+1,m,n);
dfs(grid,i,j-1,m,n);	

} int main() {

int m,n,cnt=0;
cin>>m>>n;
for(int i=0;i<m;i++){
	for(int j=0;j<n;j++){
		cin>>grid[i][j];
	}
}
for(int i=0;i<m;i++){
	if(grid[i][0]==0){
		dfs(grid,i,0,m,n);
	}if(grid[i][n-1]==0){
		dfs(grid,i,n-1,m,n);
	}
}
for(int i=0;i<n;i++){
	if(grid[0][i]==0){
		dfs(grid,0,i,m,n);
	}if(grid[m-1][i]==0){
		dfs(grid,m-1,i,m,n);
	}
}
for(int i=0;i<m;i++){
	for(int j=0;j<n;j++){
		if(grid[i][j]==0){
			dfs(grid,i,j,m,n);
			cnt++;
		}
	}
}
cout<<cnt;
return 0;

}


评论:

请先登录,才能进行评论