Time Limit: 6 sec / Memory Limit: 1024 MB
配点 : 100 点
問題文
N 頂点 M 辺の有向グラフ G および 正の整数 K が与えられます。
G の頂点および辺には頂点 1, 頂点 2, ..., 頂点 N および 辺 1, 辺 2, ..., 辺 M と番号づけられており、辺 i (1 \leq i \leq M) は 頂点 u_i から 頂点 v_i へ向かう辺で、パラメータ b_i が付加されています。 b_i は 0 または 1 です。
有向グラフ G について、以下の 3 つのことが保証されます。
- G は多重辺を持たない。
- G はサイクルを持たない。
- 各頂点は頂点 1 から辺をたどることで到達でき、頂点 1 からの最短経路の長さと最長経路の長さは一致し、それは K 以下である。
2 つの駒を使って、2 人のプレイヤーがゲームを行います。
- 最初、各プレイヤーは自分の駒を頂点 1 に置く。
- プレイヤーは自分のターンになったら以下の操作のどちらかを行う。
- 移動 : 自分の駒をちょうど 1 回移動させる。自分の駒が頂点 i にあるとき、頂点 i から頂点 j へ向かう辺があるような頂点 j へのみ移動させることができる。ただし、自分の駒が頂点 1 にあるときは、移動できる頂点から等確率でランダムに 1 つ選んで移動させなければならない。また、先手のプレイヤーは全ての辺を、後手のプレイヤーは b_i=0 である辺のみを使用することができる。
- 敗北宣言 : 自分の負け、相手の勝ちとしてゲームを終了とする。
- 先手のプレイヤーから交互にターンを繰り返し、敗北宣言が行われないならば、後手のプレイヤーが 移動を K 回行った直後の時点でゲームを終了とする。その時点で 2 つの駒が同じ頂点にあるなら後手の勝ち、異なる頂点にあるなら先手の勝ちとなる。
各プレイヤーは自分の勝ちを目指して最適な戦略を取ります。
先手のプレイヤーが勝つ確率を \bmod 998244353 で求めてください。
確率 \bmod 998244353 の定義
この問題で求める確率は必ず有理数になることが証明できます。また、この問題の制約下では、求める確率を既約分数 \frac{y}{x} で表したときに x が 998244353 で割り切れないことが保証されます。このとき、y≡xz \pmod {998244353} を満たす 0 \leq z < 998244353 がただ一つ存在するので、z を出力してください。制約
- 2 \leq N \leq 4{,}000
- 1 \leq M \leq 2 \times 10^{6}
- 1 \leq K \leq 4{,}000
- 1 \leq u_i, v_i \leq N
- b_i \in \{0, 1\}
- G は多重辺を持たない。
- G はサイクルを持たない。
- 各頂点は頂点 1 から辺をたどることで到達でき、頂点 1 からの最短経路の長さと最長経路の長さは一致し、それは K 以下である。
- 入力はすべて整数
小課題
- (1 点) N\leq100, M\leq1000
- (99 点) 追加の制約はない
入力
入力は以下の形式で標準入力から与えられます。
N M K u_1 v_1 b_1 u_2 v_2 b_2 \vdots u_M v_M b_M
出力
先手のプレイヤーが勝つ確率を \bmod 998244353 で出力してください。
入力例 1
5 6 2 1 2 0 1 3 0 2 4 0 2 5 0 3 4 0 3 5 1
出力例 1
499122177
各プレイヤーが駒を 1 回移動させた時点で、先手の駒が存在する頂点を i、後手の駒が存在する頂点を j としたときの組 (i, j) のうち、先手が勝つ組と後手が勝つ組はそれぞれ以下です。
- 先手が勝つ組 : (2, 3)、(3, 3)
- 後手が勝つ組 : (2, 2)、(3, 2)
この 4 つの組のうち、(3, 2) が選ばれたとき、以下のような進行が考えられます。
- まず頂点 1 に駒を置く。
- 先手が辺 2 を使用して自分の駒を頂点 3 へ移動させる。
- 後手が辺 1 を使用して自分の駒を頂点 2 へ移動させる。
- 先手が辺 6 を使用して自分の駒を頂点 5 へ移動させる。
- 後手が辺 4 を使用して自分の駒を頂点 5 へ移動させる。
- 後手が駒を 2 回動かしたのでゲームを終了とする。2 つの駒が頂点 5 に存在するため後手の勝ち
他にもゲームの進行は考えられますが、(3, 2) が選ばれた場合、先手がどのような戦略を取っても後手が勝つことができます。
なお、先手が勝つ確率は \frac{1}{2} と求めることができ、これを \bmod 998244353 で表現すると 499122177 となります。
このテストケースは小課題 1 の制約を満たします。
入力例 2
5 5 2 1 2 0 1 3 0 2 4 0 3 4 1 3 5 0
出力例 2
249561089
各プレイヤーが駒を 1 回移動させた時点で、先手の駒が存在する頂点を i、後手の駒が存在する頂点を j としたときの組 (i, j) のうち、先手が勝つ組と後手が勝つ組はそれぞれ以下です。
- 先手が勝つ組 : (2, 3)、(3, 2)、(3, 3)
- 後手が勝つ組 : (2, 2)
この 4 つの組のうち、(3, 2) が選ばれたとき、以下のような進行が考えられます。
- まず頂点 1 に駒を置く。
- 先手が辺 2 を使用して自分の駒を頂点 3 へ移動させる。
- 後手が辺 1 を使用して自分の駒を頂点 2 へ移動させる。
- 先手が辺 5 を使用して自分の駒を頂点 5 へ移動させる。
- 後手が辺 3 を使用して自分の駒を頂点 4 へ移動させる。
- 後手が駒を 2 回動かしたのでゲームを終了とする。2 つの駒が異なる頂点に存在するため先手の勝ち
他にもゲームの進行は考えられますが、(3, 2) が選ばれた場合、後手がどのような戦略を取っても先手が勝つことができます。
なお、先手が勝つ確率は \frac{3}{4} と求めることができ、これを \bmod 998244353 で表現すると 249561089 となります。
このテストケースは小課題 1 の制約を満たします。
入力例 3
2 1 1 1 2 1
出力例 3
1
後手は 移動を 1 回も行うことなく敗北宣言しなければなりません。
このテストケースは小課題 1 の制約を満たします。
入力例 4
16 21 3 1 2 0 1 3 0 2 4 0 2 5 0 3 6 0 3 7 0 4 8 0 4 9 0 5 10 0 5 11 0 1 12 1 1 13 1 12 14 1 12 15 1 13 6 1 13 7 1 14 8 1 14 9 1 15 10 1 15 11 1 1 16 0
出力例 4
199648871
このテストケースは小課題 1 の制約を満たします。