C - Catastrophic Roulette Editorial
by
maspy
概要
公式解説では,ゲームの開始時点からある時点までの情報を 変数で表すことで dp をしていました.
ある時点からゲームの終状態までの情報を考えると, 変数での dp の立式ができます.また,適切に立式すれば,無限和の類を考えずに解くことができます(この手の期待値の計算で頻出のテクニックです).
解法
まだ出ていない数の種類が である状態(以下「状態 」)で先手番から始めたときの,先手番の罰金期待値を ,後手番の罰金期待値を とします.
, とします(それぞれ未出の数・既出の数が出る確率です).
この状態での先手番は,
- はじめに未出の数が出たら,次からは状態 での後手番をプレイするとみなせる.
- はじめに既出の数が出たら,罰金 を払ったあと,次からは状態 での後手番をプレイすると見なせる.
ことから, という立式ができます.同様に, という立式ができます.
を既知とすれば,これら つの式は を未知数とする連立 次方程式となり,これを解くことで が計算できます. の場合に であるところからはじめて の順に計算していけばよいです.
による除算があり,この解答例の時間計算量は です.なお, 等から 以下の整数による除算だけが必要なので,時間計算量を にすることも可能です.
参考
漸化式は に関する多項式行列 をかけるという形で表せるので, や の計算は行列積 の計算という形の問題に帰着できます.このような計算は 時間で行えることが知られており,本問の を含む P-recursive な数列の第 項の計算に使うことができます.
posted:
last update: