AT_abc099_d [ABC099D] Good Grid
题目描述
有一个 $N$ 行 $N$ 列的网格,将第 $i$ 行第 $j$ 列的格子记作 $(i, j)$。
这些格子必须被涂成颜色 $1$ 到颜色 $C$ 之间的某一种颜色,初始时 $(i, j)$ 被涂成颜色 $c_{i,j}$。
如果对于任意满足 $1 \leq i, j, x, y \leq N$ 的 $i, j, x, y$,网格满足以下条件,则称其为“好网格”:
- 如果 $(i+j) \bmod 3 = (x+y) \bmod 3$,则 $(i, j)$ 和 $(x, y)$ 的颜色相同。
- 如果 $(i+j) \bmod 3 \neq (x+y) \bmod 3$,则 $(i, j)$ 和 $(x, y)$ 的颜色不同。
其中,$X \bmod Y$ 表示 $X$ 除以 $Y$ 的余数。
你可以将 $0$ 个或多个格子的颜色重新涂成任意颜色,使得网格变成“好网格”。
对于某个格子,如果涂色前的颜色是 $X$,涂色后的颜色是 $Y$,则在该格子上产生的“违和感”为 $D_{X,Y}$。
请你求出所有格子的违和感之和的最小可能值。
输入格式
输入按以下格式从标准输入读入。
> $N$ $C$
> $D_{1,1}$ $...$ $D_{1,C}$
> $\vdots$
> $D_{C,1}$ $...$ $D_{C,C}$
> $c_{1,1}$ $...$ $c_{1,N}$
> $\vdots$
> $c_{N,1}$ $...$ $c_{N,N}$
输出格式
当所有格子的违和感之和的最小值为 $x$ 时,输出 $x$。
说明/提示
### 限制条件
- $1 \leq N \leq 500$
- $3 \leq C \leq 30$
- $1 \leq D_{i,j} \leq 1000\ (i \neq j),\ D_{i,j}=0\ (i=j)$
- $1 \leq c_{i,j} \leq C$
- 所有输入均为整数
### 样例解释 1
- 将 $(1,1)$ 涂成颜色 $2$,此时 $(1,1)$ 的违和感为 $D_{1,2}=1$。
- 将 $(1,2)$ 涂成颜色 $3$,此时 $(1,2)$ 的违和感为 $D_{2,3}=1$。
- 将 $(2,2)$ 涂成颜色 $1$,此时 $(2,2)$ 的违和感为 $D_{3,1}=1$。
此时,所有格子的违和感之和为 $3$。
注意,$D_{i,j} \neq D_{j,i}$ 可能成立。
由 ChatGPT 4.1 翻译