AT_oupc2023_day1_g Impassable Game

Description

$ 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 $ を出力してください。

Input Format

入力は以下の形式で標準入力から与えられます。 > $ N $ $ M $ $ K $ $ u_1 $ $ v_1 $ $ b_1 $ $ u_2 $ $ v_2 $ $ b_2 $ $ \vdots $ $ u_M $ $ v_M $ $ b_M $

Output Format

先手のプレイヤーが勝つ確率を $ \bmod $ $ 998244353 $ で出力してください。

Explanation/Hint

### 小課題 1. ( $ 1 $ 点) $ N\leq100 $ , $ M\leq1000 $ 2. ( $ 99 $ 点) 追加の制約はない ### Sample Explanation 1 各プレイヤーが駒を $ 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 の制約を満たします。 ### Sample Explanation 2 各プレイヤーが駒を $ 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 の制約を満たします。 ### Sample Explanation 3 後手は 移動を $ 1 $ 回も行うことなく敗北宣言しなければなりません。 このテストケースは小課題 1 の制約を満たします。 ### Sample Explanation 4 このテストケースは小課題 1 の制約を満たします。 ### Constraints - $ 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 $ 以下である。 - 入力はすべて整数