P15747 [JAG 2024 Summer Camp #3] Ball Passing

题目描述

有 $N$ 种颜色(编号 $1, 2, \ldots, N$),每种颜色的球各有 $M$ 个。$N$ 名学生围成一圈玩这些球。学生按就坐顺序从 $1$ 到 $N$ 编号。 初始时,每名学生恰好有 $M$ 个球。具体来说,第 $i$ 名学生拥有的第 $j$ 个球的颜色是 $a_{i,j}$。他们将执行以下操作,以达到每名学生只持有一种颜色的球的状态: **操作**:$N$ 名学生同时将自己当前拥有的一个球传递给自己的邻居(第 $i$ 名学生将球传递给第 $(i + 1)$ 名学生,第 $N$ 名学生将球传递给第 $1$ 名学生,因为第 $(N + 1)$ 名学生被视为第 $1$ 名学生)。 你的任务是判断是否能在最多 $NM$ 次操作内达成目标。如果可能,请输出一个操作序列。

输入格式

输入包含一个单独的测试用例,格式如下: $$ \begin{aligned} & N \ M \\ & a_{1,1} \ a_{1,2} \ \ldots \ a_{1,M} \\ & a_{2,1} \ a_{2,2} \ \ldots \ a_{2,M} \\ & \vdots \\ & a_{N,1} \ a_{N,2} \ \ldots \ a_{N,M} \end{aligned} $$ 第一行包含两个整数 $N$ 和 $M$,其中 $N$ 表示学生数量,$M$ 表示每种颜色的球的数量。$N$ 和 $M$ 均在 $2$ 到 $100$ 之间(含端点)。 接下来的 $N$ 行每行包含 $M$ 个正整数 $a_{i,1}, a_{i,2}, \ldots, a_{i,M}$。整数 $a_{i,j}$ 表示第 $i$ 名学生初始拥有的第 $j$ 个球的颜色。保证 $1 \leq a_{i,j} \leq N$,且每个整数 $1, 2, \ldots, N$ 在 $a_{i,j} \ (1 \leq i \leq N, 1 \leq j \leq M)$ 中恰好出现 $M$ 次。 同时保证初始状态不满足目标条件。

输出格式

如果无法在最多 $NM$ 次操作内达成目标状态,则输出 $-1$。 否则,首先输出 $K$ —— 操作次数。接下来的 $K$ 行,每行输出 $N$ 个整数 $c_{i,1}, c_{i,2}, \ldots, c_{i,N}$。这里 $c_{i,j}$ 表示在第 $i$ 次操作中,第 $j$ 名学生传递给第 $(j+1)$ 名学生的球的颜色。

说明/提示

翻译由 DeepSeek V3.2 完成