P12578 [UOI 2021] 彩色矩阵

题目描述

给定一个 $n \times m$ 的网格,即包含 $n$ 行和 $m$ 列。 哥萨克 Vus 希望用最少数量的颜色为单元格着色。但他要求不存在两个颜色相同的单元格,且它们之间的曼哈顿距离等于 $k$。 两个单元格 $(x_1, y_1)$ 和 $(x_2, y_2)$ 之间的曼哈顿距离为 $|x_1 - x_2| + |y_1 - y_2|$。 请找到所需的最少颜色数量,并输出着色后的网格。

输入格式

第一行包含三个整数 $n$、$m$、$k$($1 \leq n, m, k \leq 100$,$k < \min(n, m)$)——分别表示行数、列数以及固定的曼哈顿距离。

输出格式

第一行输出所需的最少颜色数量 $t$。 接下来的 $n$ 行中,每行输出 $m$ 个数字——表示表格中对应单元格的颜色编号($0 \leq c_{i,j} \leq t-1$)。 如果有多种可能的表格,可以输出其中任意一种。

说明/提示

### 说明 在第一个示例中,位置 $(1,1)$ 和 $(2,2)$ 的颜色为 $0$,而位置 $(1,2)$ 和 $(2,1)$ 的颜色为 $1$。位置 $(1,1)$ 和 $(1,2)$ 之间的曼哈顿距离为 $|1-1| + |1-2| = 1$。由于 $k=1$,这两个位置必须使用不同的颜色。而位置 $(1,2)$ 和 $(2,1)$ 之间的距离为 $|1-2| + |2-1| = 2$,因此它们可以使用相同的颜色。 ### 评分标准 - (17 分):$k=1$; - (18 分):$k=2$; - (14 分):$k=3$; - (13 分):$k=4$; - (24 分):$k$ 为奇数; - (14 分):无额外限制。 翻译由 DeepSeek V3 完成