CodeForces #309_Div1 : A. Kyoya and Colored Balls
http://codeforces.com/contest/553/problem/A
問題
1〜kまでナンバリングされたボールがそれぞれ個与えらえる。
これらのボールを全て並べたとき、color(i)の中で右端に存在するボールよりも右側に
color(1)〜color(i-1)が存在しないような並べ方が何通りあるか求めよ。
解法
ナンバーの小さい順にボールを配置していく。
color(i)を配置する際、最も右側に存在するcolor(i)よりも右側にcolor(1)〜color(i-1)が
存在してはいけないので、まずcolor(i)のうち1つを右端に配置する。
残りの個のボールを、既に配置されているボールの隙間に重複を許して配置すれば良い。
例えば以下の例で、を追加したい場合 を計算する。
重複組み合わせについては hosさんのスライド が分かりやすいと思う。
ボールの総数が1000を超えないためコンビネーションの計算にパスカルの三角形を使用できる。