CF291D Parallel Programming

题目描述

有一个长度为 $n$ 的数组 $a$。最初,$a = \{1,1,1,\dots,1,1,0\}$。 你可以执行 $k$ 次操作:对于每个 $i \in [1,n]$,你可以选择一个 $c \in [1,n]$,并执行 $a_i \gets a_i + a_c$。所有 $a_i\ (i \in [1,n])$ 都会**同时**执行更改的操作。 你的目标是在 $k$ 次操作后将数组 $a$ 变为 $\{n-1,n-2,n-3,\dots,2,1,0\}$。输出一种合法的方案(即每个 $c$)。 **保证数据合法,即存在至少一个解。**

输入格式

输入一行,包含两个整数 $n,k(1 \le n \le 10^4, 1 \le k \le 20)$。

输出格式

输出 $n \times k$ 行,第 $i$ 行 $j$ 列表示第 $i$ 次操作时 $a_j$ 加上的值 $c$。

说明/提示

对于样例 #2: 最初,$a = \{1,1,0\}$。 第 $1$ 次操作: | $i$ | $1$ | $2$ | $3$ | | :----------: | :----------: | :----------: | :----------: | | $a$ | $1$ | $1$ | $0$ | | $c$ | $2$ | $3$ | $3$ | | $a_c$ | $1$ | $0$ | $0$ | | 结果 | $2$ | $1$ | $0$ | 第 $2$ 次操作: | $i$ | $1$ | $2$ | $3$ | | :----------: | :----------: | :----------: | :----------: | | $a$ | $2$ | $1$ | $0$ | | $c$ | $3$ | $3$ | $3$ | | $a_c$ | $0$ | $0$ | $0$ | | 结果 | $2$ | $1$ | $0$ | 所以,答案为 $$\begin{bmatrix}2 & 3 & 3\\ 3 & 3 & 3\end{bmatrix}$$ Translated by liuli688