全部评论 4

  • #include <iostream>
    using namespace std;
    const int N = 35;
    int a[N][N], n;
    int dx[] = {0, 0, -1, 1};
    int dy[] = {1, -1, 0, 0};
    bool inMap(int x, int y) { return x >= 0 && x <= n + 1 && y >= 0 && y <= n + 1; }
    void dfs(int x, int y) {
    for(int i = 0; i < 4; i++) {
    int nx = x + dx[i], ny = y + dy[i];
    if(inMap(nx, y) && a[nx][ny] == 0)
    a[nx][ny] = -1, dfs(nx, ny);
    }
    }
    int main() {
    cin >> n;
    for(int i = 1; i <= n; i++)
    for(int j = 1; j <= n; j++)
    cin >> a[i][j];
    a[0][0] = -1, dfs(0, 0);
    for(int i = 1; i <= n; i++)
    for(int j = 1; j <= n; j++) {
    if(a[i][j] == -1) a[i][j] = 0;
    else if(a[i][j] == 0) a[i][j] = 2;
    cout << a[i][j] << " \n"[j == n];
    }
    return 0;
    }

    2025-11-29 来自 广东

    0
  • 2025-11-29 来自 广东

    0
  • 2025-11-29 来自 广东

    0
  • 2025-11-29 来自 广东

    0

热门讨论