某公园有一块美丽的花圃,该花圃由 N 行 N 列的网格组成,每个网格都会种上一盆美丽的鲜花。我们用行号 i 和列号 j 来表示位于第 i 行第 j 列网格的位置。(i,j ∈ [1, N])
花圃的园丁培育了 C 种不同的鲜花,它们的品种编号为 1 \sim C。园丁从这些品种的鲜花中,选择了一些种到了花圃的每个网格,位于 i,j 位置的网格,种上了品种编号为 P_{ij} 的鲜花。
种完之后,园丁左看右看,总觉得当前的鲜花品种,在网格中的搭配,不够完美。于是,园丁找到了公园的园艺设计师,设计师告诉园丁,像这样的方形网格种花,要符合一定的数学规律,才能显得美观。
设计师在众多的数学规律中,找到了一条规律,只要按照这个规律来搭配,这块网格一定会更加美观。
具体来说,如果两个位置 i_1,j_1 和 i_2,j_2 满足 (i_1+j_1) \% 3 = (i_2+j_2) \% 3(\% 表示求余数),那么这两个位置的必须种植相同品种的鲜花;如果不满足这个条件,那么这两个位置的必须种植不同品种的鲜花。
为了实现更加美观的搭配,园丁可以选择重新种植部分网格的鲜花。但重新种植需要付出一定的费用,如果某网格的鲜花在重新种植前品种编号为 x,重新种植后品种编号为 y,则重新种植该网格的费用为 E_{xy}。
你的任务是计算出,如果要使整个网格中所种的鲜花品种,满足设计师指定的规则,所需的最小总费用是多少?
第 1 行输入 2 个整数 N 和 C,分别代表花圃的行、列大小以及鲜花的品种数。
接下来 C 行,每行有 C 个数,第 x 行的第 y 个数,代表了将品种编号为 x 的鲜花,换成品种编号为 y 的鲜花所需要的费用 E_{xy}。
接下来的 N 行,每行有 N 个数,第 i 行的第 j 个数,代表了园丁一开始在网格的第 i 行第 j 列的鲜花品种编号 P_{ij}。
输出一个整数,表示使得整个网格中所种的鲜花品种,满足设计师指定的规则,所需的最小总费用是多少?
2 3 0 1 1 1 0 1 1 4 0 1 2 3 3
3
4 3 0 16 72 181 0 253 142 912 0 3 1 2 1 2 1 1 2 3 2 1 3 1 1 2 2
1130
5 5 0 12 34 93 29 39 0 49 29 10 49 29 0 49 19 10 94 59 0 29 29 59 29 48 0 1 2 3 4 5 5 4 3 2 1 1 2 3 4 5 5 4 3 2 1 1 2 3 4 5
585
将 (1, 1) 位置的鲜花从品种 1 重新种植为品种 2,花费为 E_{12} = 1。 将 (1, 2) 位置的鲜花从品种 2 重新种植为品种 3,花费为 E_{23} = 1。 将 (2, 2) 位置的鲜花从品种 3 重新种植为品种 1,花费为 E_{31} = 1。
总花费为 1 + 1 + 1 = 3,此时网格中种植鲜花的品种,满足优美布局的数学规律。
对于 100\% 的数据,满足 1 \leq N \leq 500,3 \leq C \leq 30,1 \leq E_{xy} \leq 1000 (x \neq y), E_{xy} = 0 (x = y),1 \leq P_{ij} \leq C。
| 测试点 | 特殊性质 |
|---|---|
| 1 \sim 2 | N=1,C \leq 30 |
| 3 \sim 6 | N \leq 4,C=3 |
| 7 \sim 20 | 无 |