高校数学ではお馴染みの塗り分け問題!
問題概要
個のボールが一列に並んでいる。これらのボールを
色を使って塗り分ける。ただし、隣り合うボールの色は異なる色にしなければならない。何通りの塗り方があるか?
制約
- 答えは
以下
考えたこと
高校数学ではお馴染み!!!
ボールの色を塗るとき、左端から順に塗っていくことにする(このように順序を決めることは大事)。
- まず、左端のボールの塗り方は
通り考えられる。
- 次に、その右隣のボールの塗り方は
通り(左端と異なる必要があるため)
- 次に、その右隣のボールの塗り方は
通り(左端と異なる必要があるため)
- ...
- 最後に、右端のボールの塗り方は
通り(左端と異なる必要があるため)
というわけで、答えは
通り
と求められる。
コード
#include <bits/stdc++.h> using namespace std; int main() { int N, K; cin >> N >> K; int res = K; for (int i = 0; i < N-1; i++) res *= K-1; cout << res << endl; }