您提出了解决方案:
它看起来像一个图形问题。矩阵元素是图顶点。如果对应的矩阵元素是“邻居”并且具有相同的颜色,则顶点是连接的。答案是图中连通分量的数量。
以及改进:
然后必须找到“黑色”和“白色”连通分量的数量,并选择两者中最小的一个。
这似乎很好,但答案并不像起初看起来那么简单。考虑这个矩阵,其中有 13 个黑色连接组件和 4 个白色连接组件。:
B w B w B w B w B
w w w w B w w w w
B w B B B B B w B
w w B B B B B w w
B B B B B B B B B
w w B B B B B w w
B w B B B B B w B
w w w w B w w w w
B w B w B w B w B
不过,最小的解决方案只有 2 步。首先翻转(到白色)中央大黑色组件。结果,翻转的 1 个和 4 个白色组件现在连接成一个组件。将其翻转为黑色,所有板都是黑色的。
因此,在这种情况下,最小值只有 2 步,而不是 4 步。
因此,在您建立连接(黑色和白色组件)之后,我们就有了这些组件之间的连接图(就像在@Biliska 的回答中一样)。这是上述矩阵的图表:
B
|
B--w--B
|
B | B
| | |
B---w---B---w---B
| | |
B | B
|
B--w--B
|
B
我们现在需要找到图形的中心,或者只是一个中心点,例如一个节点 A,其中到其他节点 B 的最大距离 d(A,B) 是最小的(这个最小的最大距离有时被称为“偏心率”) . 从图中可以明显看出,对于上图,中心点正好有一个,“偏心率”为 2。
当偏心率为n
时,至少有一个“最大”路径长度2n-1
或2n
(2n
或2n+1
节点)。在我们的例子中:
B-w-B-w-B
由于这些图中的任何路径中的节点都是顺序黑白的,因此不难证明所需的最小更改恰好是n
(在这种情况下为 2)并且可以通过始终更改中心区域来实现。