AtCoder ABC 046 B – AtCoDeerくんとボール色塗り Python解説

2021年11月21日

スポンサーリンク

AtCoDeerくんとボール色塗り

シカのAtCoDeerくんは一列に並んだ N個のボールをそれぞれ K色のペンキの色のうちのどれかで塗ろうとしています。
見栄えが悪くならないように、隣り合ったボールは別の色で塗ることにします。ボールの塗り方としてあり得るものの個数を求めてください。

AtCoder株式会社 AtCoder Beginner Contest 046

数学のテストで出てくるような問題ですね。迷ったら状況を紙に書いて整理するといいですよ。

では、問題を解きましょう。1つ目のボールはK色すべてのペンキを使えるのでK通り。2つ目以降はK-1通り×N-1(残りのボールの個数)になるので、これを掛け合わせます。

n, k = map(int, input().split())

print(k * (k - 1) ** (n - 1))