AtCoder Beginner Contest 167 E - Colorful Blocks
解法
「隣り合うブロックの組であって同じ色で塗られている組」がちょうど 個あるとして、 についてそれぞれ求めた場合の数を合計することで答えを求めます。
ブロックは全部で 個なので、ブロックが隣り合っている箇所は 箇所です。このうちブロックが同じ色である箇所を 個選ぶ選び方は 通りです。
そして選んだ箇所を挟んだブロック同士は同じ色にしなければいけないので、結合してしまうと考えましょう。
図で示すように、ブロックが同じ色である 箇所の選び方がどのようなものであっても、結合後のブロックは 個になります。そしてこれらのブロックの間は先ほど選ばなかった箇所なので、隣り合うブロック同士は異なる色である必要があります。
つまり「 個のブロックに、隣り合うブロックの色が異なるように色を塗る方法の数」を求めれば良いです。これは、
- 1つ目のブロックは、自由に色を選ぶので 通り
- 2つ目のブロックは、1つ目のブロックの色以外から選ぶので 通り
- 3つ目のブロックは、2つ目のブロックの色以外から選ぶので 通り
- …
と考えると、 通りと計算することができます。
よって、 を について合計すれば答えを求めることができます。