#agc049a. [agc049_a]Erasing Vertices
[agc049_a]Erasing Vertices
問題文
から までの番号のついた 頂点からなる有向グラフがあります. このグラフの辺は, 個の長さ の文字列 によって表されます. 具体的には,頂点 から頂点 に向かう辺が存在する場合は 1
で, そうでない場合は 0
です. このグラフに自己ループや多重辺はありません.
クマの AtCobear くんが,以下の操作をグラフが空になるまで繰り返します.
- (まだ削除されていない) グラフの頂点を一様ランダムに つ選ぶ(このランダムな選択は,今までの選択とは独立である). そして,その頂点,およびその頂点からいくつかの辺をたどることで到達可能なすべての頂点を,削除する. 削除された頂点に接続する辺も,すべて削除される.
操作回数の期待値を求めてください.
制約
- は
0
,1
からなる長さ の文字列. 0
入力
入力は以下の形式で標準入力から与えられる.
出力
操作回数の期待値を出力せよ. 絶対誤差または相対誤差が 以下ならば,正解と判定される.
入力例 1
3
010
001
010
出力例 1
1.66666666666666666667
以下の つのシナリオが等確率で起こります.
-
最初の操作で頂点 を選び,頂点 が削除される. グラフが空になったので操作を終了する.
-
最初の操作で頂点 を選び,頂点 が削除される. 次の操作で,頂点 を選び,頂点 が削除される. グラフが空になったので操作を終了する.
-
最初の操作で頂点 を選び,頂点 が削除される. 次の操作で,頂点 を選び,頂点 が削除される. グラフが空になったので操作を終了する.
よって操作回数の期待値は, になります.
入力例 2
3
000
000
000
出力例 2
3.00000000000000000000
必ず 回の操作を行います.
入力例 3
3
011
101
110
出力例 3
1.00000000000000000000
必ず 回の操作を行います.