この記事はCompetitive Programming Advent Calendar Div2013の 14 日目の記事です。 初めまして。kuno4nです。 社会人から競技プログラミングを始めたへっぽこです。 さて、競技プログラマの皆様であれば、日常的にn個のボールをm個の箱に入れているかと思います。 ただ、場合の数を数えるとき、 ・ボールは区別がつくか? ・箱は区別がつくか? ・1つの箱に2個以上入れていいのか? ・空の箱があっていいのか? といったことが悩みの種かと思います。 まとめると、次の12通りに場合分けされます。 ボール 箱 最低1個入れる 高々1個入れる 入れ方に制限なし 区別がつく 区別がつく count1 count2 count3 区別がつく 区別がつかない count4 count5 count6 区別がつかない 区別がつく count7 count8 coun