JAG夏合宿Day3-G(AOJ2994): Toss Cut Tree
こういうやつの定跡を知っているかが重要そう。
問題
解法
木から頂点を取り除いていくので、森を扱うことになる。森の連結成分の数は、頂点の数から辺の数を引いたものである。これは期待値にしても変わらず(期待値の線形性)、を考えてよい。森の最終的な頂点数、辺数に対応する確率変数をそれぞれとし、についても同様に定義すれば、求めるべき値は以下のように書ける。
この各項を計算していこう。
- ]
の頂点に対し、最終的にが残れば1、消えていれば0を取るような確率変数をとする。また、の頂点に対し、最終的にが残れば1、消えていれば0を取るような確率変数をとする。このとき、期待値の線形性から、以下のような計算ができる。
ここで、]はのときで、そうでないときである。となるの組は個あるから
がわかった。
- ]
上の議論がわかれば、実はほとんと同じである。辺が残るには、頂点がどちらも残る必要がある。従って期待値の線形性より以下の等式が成り立つ。
]はがすべて異なるときで、それ以外のときである。よって、がすべて異なるようなの組を数えればよく、これはの各頂点の次数を持っておくことで可能である。
- ]
これは]と同様なので省略。
- ]
もはやこれも説明不要かもしれない。今までと同様に以下の等式が成り立つ。
]は、がすべて異なれば、そうでなければである。がすべて異なるようなの組の数は、の各頂点の次数を見れば計算できる。
上で述べた計算すべき値はすべてで計算可能なので、この問題がで解けた。
実装
特に難しいところはない。