atcoder#AGC049A. [AGC049A] Erasing Vertices

[AGC049A] Erasing Vertices

配点 : 400400

問題文

11 から NN までの番号のついた NN 頂点からなる有向グラフがあります. このグラフの辺は,NN 個の長さ NN の文字列 S1,S2,,SNS_1,S_2,\ldots,S_N によって表されます. 具体的には,頂点 ii から頂点 jj に向かう辺が存在する場合は Si,j=S_{i,j}=1 で, そうでない場合は Si,j=S_{i,j}=0 です. このグラフに自己ループや多重辺はありません.

クマの AtCobear くんが,以下の操作をグラフが空になるまで繰り返します.

  • (まだ削除されていない) グラフの頂点を一様ランダムに 11 つ選ぶ(このランダムな選択は,今までの選択とは独立である). そして,その頂点,およびその頂点からいくつかの辺をたどることで到達可能なすべての頂点を,削除する. 削除された頂点に接続する辺も,すべて削除される.

操作回数の期待値を求めてください.

制約

  • 1N1001 \leq N \leq 100
  • SiS_i0,1 からなる長さ NN の文字列.
  • Si,i=S_{i,i}=0

入力

入力は以下の形式で標準入力から与えられる.

NN

S1S_1

S2S_2

\vdots

SNS_N

出力

操作回数の期待値を出力せよ. 絶対誤差または相対誤差が 10910^{-9} 以下ならば,正解と判定される.

3
010
001
010
1.66666666666666666667

以下の 33 つのシナリオが等確率で起こります.

  • 最初の操作で頂点 11 を選び,頂点 1,2,31,2,3 が削除される. グラフが空になったので操作を終了する.
  • 最初の操作で頂点 22 を選び,頂点 2,32,3 が削除される. 次の操作で,頂点 11 を選び,頂点 11 が削除される. グラフが空になったので操作を終了する.
  • 最初の操作で頂点 33 を選び,頂点 2,32,3 が削除される. 次の操作で,頂点 11 を選び,頂点 11 が削除される. グラフが空になったので操作を終了する.

よって操作回数の期待値は,(1+2+2)/3=5/3(1+2+2)/3=5/3 になります.

3
000
000
000
3.00000000000000000000

必ず 33 回の操作を行います.

3
011
101
110
1.00000000000000000000

必ず 11 回の操作を行います.