atcoder#ABC213H. [ABC213H] Stroll

[ABC213H] Stroll

配点 : 600600

問題文

高橋君は家の周りをあてもなく歩き回ることにしました。 散歩の間、高橋君は地点 11, 地点 22, \dots, 地点 NNNN か所の地点を歩き回ります。ここで、地点 11 は自宅です。 地点間に道が存在するような地点の組は MM 組あります。 ii 番目の組を (ai,bi)(a_i, b_i) とした時、地点 aia_i と地点 bib_i を双方向に結ぶ長さ dd (1dT)(1 \leq d \leq T) キロメートルの道は pi,dp_{i, d} 本あります。

高橋君は自宅を出発して TT キロメートル歩いて自宅に戻る散歩コースの本数が知りたくなりました。ここで、長さ TT キロメートルの散歩コースは次のように定義されます。

  • 地点と道を交互に並べた列 v0=1,e0,v1,,ek1,vk=1v_0 = 1, e_0, v_1, \dots,e_{k-1}, v_k = 1 であって、eie_i (0ik1)(0 \leq i \leq k-1)viv_ivi+1v_{i+1} を結んでいて、 eie_i の長さの和が TT キロメートルである。

あなたは高橋君のかわりに条件を満たす散歩コースの本数を 998244353998244353 で割ったあまりを求めてください。ただし、22 つの散歩コースは列として異なるときに異なるとみなされます。

制約

  • 2N102 \leq N \leq 10
  • $1 \leq M \leq \min \left(10, \frac{N(N-1)}{2} \right)$
  • 1T4×1041 \leq T \leq 4 \times 10^4
  • 1ai<biN1 \leq a_i \lt b_i \leq N
  • iji \neq j ならば (ai,bi)(aj,bj)(a_i, b_i) \neq (a_j, b_j)
  • 0pi,j<9982443530 \leq p_{i,j} \lt 998244353

入力

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

NN MM TT

a1a_1 b1b_1

p1,1p_{1,1} p1,2p_{1,2} \ldots p1,Tp_{1,T}

\vdots

aMa_M bMb_M

pM,1p_{M,1} pM,2p_{M,2} \ldots pM,Tp_{M,T}

出力

条件を満たす散歩コースの本数を 998244353998244353 で割ったあまりを出力せよ。

3 2 2
1 2
1 0
1 3
2 0
5

高橋君の家の周りには、

  • 地点 11 と地点 22 を結ぶ長さ 11 キロメートルの道が 11
  • 地点 11 と地点 33 を結ぶ長さ 11 キロメートルの道が 22

あります。条件を満たすコースは

  • 地点 11 \to 地点 22 \to 地点 11 の順に巡るコースが 1×1=11 \times 1 = 1 通り
  • 地点 11 \to 地点 33 \to 地点 11 の順に巡るコースが 2×2=42 \times 2 = 4 通り

の計 55 通りです。

3 3 4
1 2
3 0 0 0
1 3
0 1 0 0
2 3
2 0 0 0
130

高橋君の家の周りには、

  • 地点 11 と地点 22 を結ぶ長さ 11 キロメートルの道が 33
  • 地点 11 と地点 33 を結ぶ長さ 22 キロメートルの道が 11
  • 地点 22 と地点 33 を結ぶ長さ 11 キロメートルの道が 22

あります。条件を満たすコースは、経由する地点を列挙すると

  • 地点 11 \to 地点 22 \to 地点 11 \to 地点 22 \to 地点 11
  • 地点 11 \to 地点 22 \to 地点 33 \to 地点 11
  • 地点 11 \to 地点 22 \to 地点 33 \to 地点 22 \to 地点 11
  • 地点 11 \to 地点 33 \to 地点 11
  • 地点 11 \to 地点 33 \to 地点 22 \to 地点 11

55 パターンがあり、本数は上から順に 8181 通り、 66 通り、 3636 通り、 11 通り、 66 通りとなります。

2 1 5
1 2
31415 92653 58979 32384 62643
844557977