atcoder#ABC277G. [ABC277G] Random Walk to Millionaire

[ABC277G] Random Walk to Millionaire

配点 : 600600

問題文

NN 個の頂点と MM 本の辺からなる連結かつ単純な無向グラフが与えられます。 i=1,2,,Mi = 1, 2, \ldots, M について、ii 番目の辺は頂点 uiu_i と頂点 viv_i を結んでいます。

高橋君は、はじめレベル00 の状態で頂点 11 におり、下記の行動をちょうど KK 回行います。

  • まず、いまいる頂点に隣接する頂点の中から、11 つを等確率でランダムに選択し、その頂点に移動する。
  • その後、移動後の頂点 vv に応じて、下記のイベントが発生します。- Cv=0C_v = 0 のとき : 高橋君のレベルが 11 だけ増加する。
    • Cv=1C_v = 1 のとき : 高橋君のいまのレベルを XX とする。高橋君は X2X^2 円のお金を獲得する。
  • Cv=0C_v = 0 のとき : 高橋君のレベルが 11 だけ増加する。
  • Cv=1C_v = 1 のとき : 高橋君のいまのレベルを XX とする。高橋君は X2X^2 円のお金を獲得する。

上記の KK 回の行動の過程で高橋君が獲得するお金の合計金額の期待値を mod998244353\mathrm{mod}\, 998244353 で出力してください(注記参照)。

注記

求める期待値は必ず有理数となることが証明できます。またこの問題の制約下では、その値を互いに素な 22 つの整数 PP, QQ を用いて PQ\frac{P}{Q} と表したとき、R×QP(mod998244353)R \times Q \equiv P\pmod{998244353} かつ 0R<9982443530 \leq R \lt 998244353 を満たす整数 RR がただ一つ存在することが証明できます。この RR を求めてください。

制約

  • 2N30002 \leq N \leq 3000
  • N1Mmin{N(N1)/2,3000}N-1 \leq M \leq \min\lbrace N(N-1)/2, 3000\rbrace
  • 1K30001 \leq K \leq 3000
  • 1ui,viN1 \leq u_i, v_i \leq N
  • uiviu_i \neq v_i
  • $i \neq j \implies \lbrace u_i, v_i\rbrace \neq \lbrace u_j, v_j \rbrace$
  • 与えられるグラフは連結
  • Ci{0,1}C_i \in \lbrace 0, 1\rbrace
  • 入力はすべて整数

入力

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

NN MM KK

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uMu_M vMv_M

C1C_1 C2C_2 \ldots CNC_N

出力

答えを出力せよ。

5 4 8
4 5
2 3
2 4
1 2
0 0 1 1 0
89349064

高橋君の移動経路として考えられるものは複数ありますが、ここでは例として、高橋君が頂点 11 を始点として、$1 \rightarrow 2 \rightarrow 4 \rightarrow 5 \rightarrow 4 \rightarrow 2 \rightarrow 1 \rightarrow 2 \rightarrow 3$ と移動する場合に獲得するお金の合計金額を計算します。

  1. 高橋君は 11 回目の行動で、いまいる頂点 11 に隣接する頂点 22 に移動します。C2=0C_2 = 0 であるため、その後高橋君のレベルが 11 に上がります。
  2. 高橋君は 22 回目の行動で、いまいる頂点 22 に隣接する頂点 44 に移動します。C4=1C_4 = 1 であるため、その後高橋君は 12=11^2 = 1 円を獲得します。
  3. 高橋君は 33 回目の行動で、いまいる頂点 44 に隣接する頂点 55 に移動します。C5=0C_5 = 0 であるため、その後高橋君のレベルが 22 に上がります。
  4. 高橋君は 44 回目の行動で、いまいる頂点 55 に隣接する頂点 44 に移動します。C4=1C_4 = 1 であるため、その後高橋君は 22=42^2 = 4 円を獲得します。
  5. 高橋君は 55 回目の行動で、いまいる頂点 44 に隣接する頂点 22 に移動します。C2=0C_2 = 0 であるため、その後高橋君のレベルが 33 に上がります。
  6. 高橋君は 66 回目の行動で、いまいる頂点 22 に隣接する頂点 11 に移動します。C1=0C_1 = 0 であるため、その後高橋君のレベルが 44 に上がります。
  7. 高橋君は 77 回目の行動で、いまいる頂点 11 に隣接する頂点 22 に移動します。C2=0C_2 = 0 であるため、その後高橋君のレベルが 55 に上がります。
  8. 高橋君は 88 回目の行動で、いまいる頂点 22 に隣接する頂点 33 に移動します。C3=1C_3 = 1 であるため、その後高橋君は 52=255^2 = 25 円を獲得します。

よって、高橋君が獲得するお金の合計金額は、1+4+25=301 + 4 + 25 = 30 円です。

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