AtCoder Beginner Contest 243 F問題 Lottery
問題
提出解答
問題の概要
1回引くと, 種類の賞品のうちどれか1種類が1個貰えるくじがある. 番目の賞品が貰える確率は である.
また, 各回は独立である.
このくじを 回引いたあと, 貰えた賞品がちょうど 種類である確率を求めよ.
制約
解法
1回のくじで 番目の賞品が貰える確率を とする.
求めるべきは
である. という条件がなければ, 1変数の形式的ベキ級数を用いて比較的簡単に求めることができる.
しかし, この問題ではこの制約により, 1変数で議論することが厳しくなっている. ここで, を変数としたとき, で状態を表していることが頭に入っていると, もう1つの変数を増やして, 2つの状態を記録すればよいうことに気がつく.
そこで, 2変数の形式的ベキ級数を用いて求めることにする. を変数とする形式的ベキ級数 を
と定める. このとき, 次は 回引いて 種類の賞品を獲得した状況を意味する.
このことから, 求めるべき答えは
である.
2変数の形式的ベキ級数の保存方法について,
とみなして, 1変数の形式的ベキ級数の列として保存すればよい.
また, 2つの2変数形式的ベキ級数 の積について,
であり, 1変数の場合に帰着できる.
以上では, 形式的ベキ級数での議論を行ったが, 実際には については 次まで, については 次まででよく. また, 多項式の積についても愚直に行っても全体の時間計算量 で求めることができる.
また, の部分を数論変換を利用すると, 時間計算量 になる.
*1: での出力を求められているため