3 条题解

  • 1
    @ 2025-10-13 19:56:12

    原题:P5461 赦免战俘 - 洛谷

    递归题。我不相信有人能在赛场上手敲出1024*1024(n=10)的矩阵...

    参考代码(C++):

    #include <bits/stdc++.h>
    using namespace std;
    
    int m[1030][1030];
    
    void draw(int sx, int sy, int l) {
        if (l == 1) {
            m[sx][sy] = 1;
            return;
        }
        draw(sx, sy, l / 2);
        draw(sx + l / 2, sy, l / 2);
        draw(sx + l / 2, sy + l / 2, l / 2);
    }
    
    int main() {
        int n;
        cin >> n;
        int len = pow(2, n);
        draw(1, 1, len);
        for (int i = 1; i <= len; i++) {
            for (int j = 1; j <= len; j++) {
                cout << m[i][j] << " ";
            }
            cout << "\n";
        }
        return 0;
    }
    

    信息

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