あなたは解決策を提案しました:
グラフの問題のようです。行列要素はグラフの頂点です。対応する行列要素が「隣接」であり、同じ色である場合、頂点は接続されます。答えは、グラフ内の連結成分の数です。
そして改善:
次に、「黒」と「白」の連結成分の数を見つけて、両方のうち最小のものを選択する必要があります。
これはかなり良いようですが、答えは最初のように単純ではありません。このマトリックスを考えてみましょう。ここでは、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つの白いコンポーネントが1つのコンポーネントに接続されます。これを黒に反転すると、すべてのボードが黒になります。
したがって、この場合、最小値は4回ではなく、2回の移動です。
したがって、接続済み(黒と白のコンポーネント)を確立すると、これらのコンポーネント間の接続のグラフが作成されます(@Biliskaの回答のように)。上記のマトリックスのグラフは次のとおりです。
B
|
B--w--B
|
B | B
| | |
B---w---B---w---B
| | |
B | B
|
B--w--B
|
B
ここで、グラフの中心、または中心点の1つだけを見つける必要があります。たとえば、他のノードBまでの最大距離d(A、B)が最小であるノードA(この最小最大距離は「離心率」と呼ばれることもあります) 。上のグラフの場合、中心点が1つだけあり、「離心率」が2であることが図から明らかです。
離心率がである場合、長さまたは(またはノードの)n
の「最大」パスが少なくとも1つあります。私たちの場合には:2n-1
2n
2n
2n+1
B-w-B-w-B
これらのグラフのどのパスでもノードは順番に白黒であるため、必要な最小限の変更が正確にn
(この場合は2)であり、常に中央領域を変更することで達成できることを証明するのは難しくありません。