#5122. 快速IO

内存限制:256 MiB 时间限制:500 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Star

题目描述

题目背景

众所周知,在 10 月 18 日的模拟赛中,众 HYOI 选手因输出过慢而导致了大量 TLE,失去了宝贵的 10 分。

题目描述

使得如下代码不发生 TLE,时间限制为 0.5s.

#include <iostream>

using namespace std;

const int N = 1 << 12;

int a[N][N];

int add(int a, int b, int k) {
    int res = a + b;
    while (res >= (1 << k)) {
        res = res % (1 << k) + ((res ^ (res % 1 << k)) >> k);
    }
    return res;
}

int main() {
    ios::sync_with_stdio(false);
    int k;
    cin >> k;
    int lim = 1 << k;
    for (int i = 1; i < lim; ++i) {
        for (int j = 1; j < lim; ++j) {
            a[i][j] = add(a[i][j - 1], i, k);
        }
    }
    for (int i = 0; i < lim; ++i) { 
        for (int j = 0; j < lim; ++j) {
            cout << a[i][j] << ' ';
        }
        cout << '\n';
    }
    return 0;
}

样例

样例输入

2

样例输出

0 0 0 0 
0 1 2 3 
0 2 1 3 
0 3 3 3 

数据范围与提示

数据范围

对于 100 \% 的数据,满足 k \le 12 .

提示

本题非常难!建议先去看看其他题!