AGC023-C:Painting Machines
問題
https://beta.atcoder.jp/contests/agc023/tasks/agc023_c
個のマスがあり白く塗られている。ある操作で を黒く塗ることができる。順列 によってすべてのマスを黒く塗るとき、はじめてすべてのマスが黒く塗られるまでの回数 が何通りあるかそれぞれ求めよ。
制約
考え方
何が簡単に求めることができるだろうか。条件を緩めて求めやすい数はないか?という意識で方針を探索することが重要。
ちょうど 回の操作ですべてのマスが黒くなる場合の数を数えると、 回までは少なくとも つのマスは白くなっており、 回目の操作ですべて黒くなる場合を考えなければならない。これは数えにくい。
ちょうど 回で塗る場合の数ではなく、 回以下ですべて塗る場合の数を考えると 回以下ですべて塗られている場合も含めて 回ですべて塗られていればよいので、数えやすくなる。 回以下ですべてのマスを塗る場合の数が何通りにあるか求める。
回以下で塗るときの必要条件は、
(A). は 回の中に必ず含まれる
(B). ( として)
である。((B). によって順列の対象となる数が決まるイメージ)
(A). については 通りである。(B). については となる回数を 、 となる回数を とすると以下が満たされる必要がある。
上記を満たす 個の 、 個の の順列、 である つの数の順列, それ以外の つの順列の積が 回以下ですべてのマスを塗る場合の数となる。
あとは、ちょうど 回の場合の数 = 回以下の場合の数 - 回以下の場合の数 であるから、求めることができる。
ポイント
- 何が求められるか。求めやすいか考える