48求调
查看原帖
48求调
811570
H_Monkey楼主2024/8/15 11:07
#include <bits/stdc++.h>
using namespace std;
int n;
int a[35][35], b[35][35];
int kx[5] = {0, 1, -1, 0, 0};
int ky[5] = {0, 0, 0, 1, -1};
void dfs(int x1, int y1){
	b[x1][y1] = 3;
	for(int i = 1; i <= 4; i++){
		int x2 = x1+kx[i];
		int y2 = y1+ky[i];
		if(x2<=n && y2<=n && x2>0 && y2>0 && b[x2][y2]==0)b[x2][y2] = 3;
	}
}
int main(){
	cin >> n;
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= n; j++){
			cin >> a[i][j];
			b[i][j] = a[i][j];
		}
	}
	for(int i = 1; i <= n; i++){
		if(a[i][1] == 0)dfs(i, 1);
		if(a[i][n] == 0)dfs(i, n);
	}
	for(int i = 1; i <= n; i++){
		if(a[1][i] == 0)dfs(1, i);
		if(a[n][i] == 0)dfs(n, i);
	}
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= n; j++){
			if(b[i][j] == 0)a[i][j] = 2;
			cout << a[i][j] << " ";
		}
		cout << endl;
	}
}
2024/8/15 11:07
加载中...