1 条题解

  • 0
    @ 2026-8-24 9:05:20
    #include <iostream>
    using namespace std;
    int mat[1024][1024];
    void dfs(int x, int y, int len) {
        if (len == 1) return;
        int half = len / 2;
        for (int i = x; i < x + half; ++i)
            for (int j = y; j < y + half; ++j)
                mat[i][j] = 0;
        dfs(x, y + half, half);
        dfs(x + half, y, half);
        dfs(x + half, y + half, half);
    }
    int main() {
        int n;
        cin >> n;
        int size = 1;
        for (int i = 0; i < n; ++i) size *= 2;
        for (int i = 0; i < size; ++i)
            for (int j = 0; j < size; ++j)
                mat[i][j] = 1;
        dfs(0, 0, size);
        for (int i = 0; i < size; ++i) {
            for (int j = 0; j < size; ++j) {
                cout << mat[i][j];
                if (j != size - 1) cout << " ";
            }
            cout << endl;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    59
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    59
    已通过
    17
    上传者