深山之中,住着一位得道的老猫。其弟子 jimmyywang 每日跟随它修行。他们所居住的这座灵山,可以看作一个 $ n \times m $ 的区域。山中万物皆有灵,每个区域的灵力都处在一个特定的境界,从 $0$ 到 $k-1$ 共 $k$ 种。
老猫认为,当整座山的灵力境界归于统一之时,世界的灵力才能达到和谐。
调和整座山的灵力是一项艰巨的任务,可能需要进行多次修行才能完成。
一个完整的修行方案包含任意次下山行程。在每一次行程中,老猫都会选择一条从山顶 $ (1,1) $ 到山脚 $ (n,m) $ 的路径。由于是下山,它的每一步只能移动到相邻的下方格子 $(i+1, j)$ 或右方格子 $(i, j+1)$。每次走完一条路径,路径上所有格子的灵力境界都会因其灵力而提升一阶。如果一个格子的境界已经是 $k-1$,则会回归到最初的境界 $0$(即,境界变化是在模 $k$ 意义下加 $1$)。
穿行每个格子 $(i,j)$ 都会消耗老猫的精力,其消耗量为 $a_{i,j}$。这个值是非负的。一次下山行程的精力成本,是路径上所有格子 $a_{i,j}$ 值的总和。
作为弟子的 jimmyywang,他的任务是设计一套总精力成本最小的修行方案(即,规划所有必要的下山行程),使得在方案执行完毕后,整座山的 $n \times m$ 个格子能变为同一种境界(即,所有格子的境界值都等于某一个共同的值 $c$,其中 $ 0 \le c < k $)。方案的总成本是所有行程成本的累加。
但是 jimmyywang 还要打音游,所以请你帮帮他!
形式化的,给定一个 $n \times m$ 的网格,每个格子 $(i,j)$ 有一个初始境界 $s_{i,j}$(一个 $0$ 到 $k-1$ 的整数)和一个非负的成本 $a_{i,j}$。
你可以执行任意次以下操作(一次操作定义为依次进行以下三条):
你的目标是使得整个网格的境界统一(所有格子的值都等于同一个整数),并求出达成该目标所需的最小总成本。
第一行包含一个整数 $T$($1\le T \le 10$),表示测试数据的组数。
接下来,对于每组测试数据:
对于每组测试数据,输出一行,包含一个整数,代表达成和谐状态所需的最小总精力成本。如果无论如何都无法使整座山变为同色,则输出 Impossible
。
1 3 3 5 0 1 0 2 2 0 4 3 0 2 0 7 0 3 200 100 10 1
\n · · \n · · \n · · \n · · \n · · \n · · \n · · \n
1178
\n
一种最优方案是:
路径 $(1,1)\to(1,2)\to(1,3)\to(2,3)\to(3,3)$ 走 3 次,成本为 $3\times(2+0+7+200+1)=630$。
路径 $(1,1)\to(1,2)\to(2,2)\to(3,2)\to(3,3)$ 走 4 次,成本为 $4\times(2+0+3+10+1)=64$。
路径 $(1,1)\to(2,1)\to(2,2)\to(3,2)\to(3,3)$ 走 2 次,成本为 $2\times(2+0+3+10+1)=32$。
路径 $(1,1)\to(2,1)\to(3,1)\to(3,2)\to(3,3)$ 走 4 次,成本为 $4\times(2+0+100+10+1)=452$。
容易验证经过这些操作后,所有数都会变成 3。总代价和是 $630+64+32+452=1178$,可以证明没有成本更低的方案。