32 pts 求助
查看原帖
32 pts 求助
1015780
newbieTroll楼主2023/9/19 13:16
#include<bits/stdc++.h>
using namespace std;
int n;
bool a[35][35],vis[35][35];
int dx[]={-1,1,0,0},dy[]={0,0,-1,1};
void dfs(int x,int y){
	int nx,ny;
	if(x<1||x>n||y<1||y>n){
		return ;
	}
	if(vis[x][y]!=0) return ;
	vis[x][y]=1;
	for(int i=0;i<4;i++){
		nx=x+dx[i];
		ny=y+dy[i];
		dfs(nx,ny);
	}
	return ;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			cin>>a[i][j];
			if(a[i][j]) vis[i][j]=1;
		}
	}
	dfs(1,1);
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;j++){
			if(vis[i][j]==0) cout<<2;
			else cout<<a[i][j];
			cout<<' ';
		}cout<<endl;
	}
	return 0;
}

2023/9/19 13:16
加载中...