以下、赤いボールを R
、青いボールを B
と書きます。
青いボールの並べ方
まず、青いボールの並べ方から考えます。青いボールを $i$ 個のブロックに分けると、高橋くんの操作回数は $i$ 回になります。ただし、青いボールは $K$ 個しかないので、$K+1$ 個以上のブロックに分けることはできません。
青いボールを $i$ 個のブロックに分けることにすると、各ブロックに最低1個は青いボールが必要なので、$i$ 個の青いボールを消費します。
残りの $K-i$ 個の青いボールは、$i$ 個のブロックのどこかに入ればよいことになります。この組み合わせ数は $_i\mathrm{H}_{K-i}$ と書けます。「$i$ 個から重複を含めて $K-i$ 個取る」と読みます。
この組み合わせ数は、||||BBBBB
というように、$K-i$ 個の青いボールを、$i-1$ 個の仕切りと合わせて並べる組み合わせ数と等しくなります。よって、 $_i\mathrm{H}_{K-i} = {}_{K-1}\mathrm{C}_{K-i}$ です。
赤いボールの並べ方
次に、赤いボールを並べます。青いボールが $i$ 個のブロックに分かれるためには、$i-1$ か所のすき間に赤いボールが最低1個以上入る必要があります。この時点で $i-1$ 個の赤いボールを消費します。$N-K < i-1$ の場合、青いボールを $i$ 個のブロックに分けることができないので、そのようなボールの並べ方は存在しません。
残った $N-K-(i-1)$ 個の赤いボールは、端も含めた $i+1$ か所に分配すればよいです。これは ${}_{i+1}\mathrm{H}_{N-K-(i-1)}$ 通りです。先ほどと同じように、$N-K-(i-1)$ 個の赤いボールを $i$ 個の仕切りとともに並べる組み合わせの数と同じなので、 ${}_{N-K+1} \mathrm{C}_{N-K-i+1}$ 通りあります。
答え
以上から、高橋くんが操作をちょうど $i$ 回行うようなボールの並べ方は、$i \leq N-K+1$ ならば ${}_{K-1}\mathrm{C}_{K-i}\times{}_{N-K+1}\mathrm{C}_{N-K-i+1}$ 通り、$i > N-K+1$ ならば $0$ 通りです。
実装例
参考リンク
感想
こういうのが数分で定式化できる人は強い。