48分?
查看原帖
48分?
738761
HappyDavid楼主2023/9/2 18:52
/* 看了看题解,先DFS外面,外面的搞成一个数,再搞里面的就好了……NB */
#include <bits/stdc++.h>
using namespace std;
typedef long long lint;
lint n, a[31][31], i, j;
void dfs(lint x, lint y, lint toNum) {
	if (x < 1 || x > n || y < 1 || y > n || a[x][y] != 0)
		return;
	a[x][y] = toNum;
	dfs (x - 1, y, toNum);
	dfs (x, y - 1, toNum);
	dfs (x, y + 1, toNum);
	dfs (x + 1, y, toNum);
}
int main() {
	scanf ("%lld", &n);
	for (i = 1; i <= n; i++)
		for (j = 1; j <= n; j++)
			scanf ("%lld", &a[i][j]);
	dfs (1, 1, 3);
	dfs (n, n, 3);
	dfs (1, n, 3);
	dfs (n, 1, 3);
	for (i = 1; i <= n; i++) {
		for (j = 1; j <= n; j++) {
			if (a[i][j] == 0)
				a[i][j] = 2;
			if (a[i][j] == 3)
				a[i][j] = 0;
			printf ("%lld ", a[i][j]);
		}
		printf ("\n");
	}
	return 0;
}
2023/9/2 18:52
加载中...