atcoder#ABC277G. [ABC277G] Random Walk to Millionaire
[ABC277G] Random Walk to Millionaire
配点 : 点
問題文
個の頂点と 本の辺からなる連結かつ単純な無向グラフが与えられます。 について、 番目の辺は頂点 と頂点 を結んでいます。
高橋君は、はじめレベルが の状態で頂点 におり、下記の行動をちょうど 回行います。
- まず、いまいる頂点に隣接する頂点の中から、 つを等確率でランダムに選択し、その頂点に移動する。
- その後、移動後の頂点 に応じて、下記のイベントが発生します。- のとき : 高橋君のレベルが だけ増加する。
- のとき : 高橋君のいまのレベルを とする。高橋君は 円のお金を獲得する。
- のとき : 高橋君のレベルが だけ増加する。
- のとき : 高橋君のいまのレベルを とする。高橋君は 円のお金を獲得する。
上記の 回の行動の過程で高橋君が獲得するお金の合計金額の期待値を で出力してください(注記参照)。
注記
求める期待値は必ず有理数となることが証明できます。またこの問題の制約下では、その値を互いに素な つの整数 , を用いて と表したとき、 かつ を満たす整数 がただ一つ存在することが証明できます。この を求めてください。
制約
- $i \neq j \implies \lbrace u_i, v_i\rbrace \neq \lbrace u_j, v_j \rbrace$
- 与えられるグラフは連結
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを出力せよ。
5 4 8
4 5
2 3
2 4
1 2
0 0 1 1 0
89349064
高橋君の移動経路として考えられるものは複数ありますが、ここでは例として、高橋君が頂点 を始点として、$1 \rightarrow 2 \rightarrow 4 \rightarrow 5 \rightarrow 4 \rightarrow 2 \rightarrow 1 \rightarrow 2 \rightarrow 3$ と移動する場合に獲得するお金の合計金額を計算します。
- 高橋君は 回目の行動で、いまいる頂点 に隣接する頂点 に移動します。 であるため、その後高橋君のレベルが に上がります。
- 高橋君は 回目の行動で、いまいる頂点 に隣接する頂点 に移動します。 であるため、その後高橋君は 円を獲得します。
- 高橋君は 回目の行動で、いまいる頂点 に隣接する頂点 に移動します。 であるため、その後高橋君のレベルが に上がります。
- 高橋君は 回目の行動で、いまいる頂点 に隣接する頂点 に移動します。 であるため、その後高橋君は 円を獲得します。
- 高橋君は 回目の行動で、いまいる頂点 に隣接する頂点 に移動します。 であるため、その後高橋君のレベルが に上がります。
- 高橋君は 回目の行動で、いまいる頂点 に隣接する頂点 に移動します。 であるため、その後高橋君のレベルが に上がります。
- 高橋君は 回目の行動で、いまいる頂点 に隣接する頂点 に移動します。 であるため、その後高橋君のレベルが に上がります。
- 高橋君は 回目の行動で、いまいる頂点 に隣接する頂点 に移動します。 であるため、その後高橋君は 円を獲得します。
よって、高橋君が獲得するお金の合計金額は、 円です。
8 12 20
7 6
2 6
6 4
2 1
8 5
7 2
7 5
3 7
3 5
1 8
6 3
1 4
0 0 1 1 0 0 0 0
139119094