おもしろかったです。writer/testerの方法より多少思いつきやすそうな&文字の種類増やせる別解で解いたので書きます(というか解説の固定方法よく思いついたな…)。
問題の一般化
以下のような問題が解ければいいです。
種類の色 があり、色 のボールは 個、色 の筒は 個あります。同じ色の筒には同じ色のボールを入れることができませんが、すべての色のボールが入れられる特別な筒が つだけあります。ボールの入れ方が何通りあるか求めてください。
解法
とします。簡単のためにまず とします。
ボールは同じ色であってもすべて区別します(最後に で割ればいいです)。そして「同じ色のボールは同じ色の筒に入れてはならない」という条件について、条件違反をボールごとにみる包除原理で考えます。
色 のボールのうち、確実に条件違反しているボールが 個であるものとします。ボールの筒への入れ方ですが、確実に条件違反しているボール→残りのボールの順に考えます。
まず確実に条件違反しているボールの入れ方ですがこれは色ごとに独立に考えることができて 通りです。
この後残っているボールを挿入しますが、これは 個のものの列に 個のものを挿入と考えれば 通りです。
よって ごとに最初の総積の総和が求まればいいです。これは包除原理による符号や最初に違反する 個の選び方も考慮すると の総積をみればよく、 で求まります。
の については違反しようがないので として同じ計算をすれば求まります。