#ATabc317h. [ABC317Ex] Walk

[ABC317Ex] Walk

题目描述

有一个有 NN 个顶点的有向图,顶点编号为 11NN。图中不存在重边,但可能存在自环。此外,图中所有的边都满足以下条件:

  • 假设有一条从顶点 ss 指向顶点 tt 的边,则 s, ts,\ t 至少满足 0ts20 \leq t - s \leq 2t=1t = 1 之一。

图中边的存在情况由长度为 NN 的数列 A,B,C,DA,B,C,D 给出。A, B, C, DA,\ B,\ C,\ D 的每个元素含义如下(以下 AA 的第 nn 个元素记为 AnA_nBn, Cn, DnB_n,\ C_n,\ D_n 同理):

  • AnA_n:如果存在从顶点 nn 到顶点 nn 的边,则 An=1A_n = 1,否则 An=0A_n = 0
  • BnB_n:如果存在从顶点 nn 到顶点 n+1n+1 的边,则 Bn=1B_n = 1,否则 Bn=0B_n = 0(其中 BN=0B_N = 0)。
  • CnC_n:如果存在从顶点 nn 到顶点 n+2n+2 的边,则 Cn=1C_n = 1,否则 Cn=0C_n = 0(其中 CN1=CN=0C_{N-1} = C_N = 0)。
  • DnD_n:如果存在从顶点 nn 到顶点 11 的边,则 Dn=1D_n = 1,否则 Dn=0D_n = 0(其中 D1=A1D_1 = A_1)。

请你求出,在给定的图中,从顶点 11 出发,以顶点 NN 结束,且恰好经过 KK 条边的 walk 的数量,并对 998244353998244353 取模。

这里,“从顶点 11 出发,以顶点 NN 结束,且恰好经过 KK 条边的 walk”指的是一个顶点序列 v0=1,v1,,vK=Nv_0 = 1, v_1, \dots, v_K = N,对于每个 ii0i<K0 \leq i < K),存在从 viv_ivi+1v_{i+1} 的有向边。两个 walk 只要顶点序列不同就视为不同。

输入格式

输入以如下格式从标准输入给出。

NN KK A1A_1 A2A_2 \dots ANA_N B1B_1 B2B_2 \dots BNB_N C1C_1 C2C_2 \dots CNC_N D1D_1 D2D_2 \dots DND_N

输出格式

请输出从顶点 11 出发,以顶点 NN 结束,且恰好经过 KK 条边的 walk 的数量,对 998244353998244353 取模。

样例 1

输入

3 3
1 0 1
1 1 0
1 0 0
1 0 1

输出

6

样例 2

输入

4 6
1 1 1 1
1 1 1 0
1 1 0 0
1 0 0 0

输出

50

样例 3

输入

10 500000
0 1 0 1 0 0 0 0 1 1
1 1 1 0 1 1 1 0 1 0
0 0 1 1 0 0 1 1 0 0
0 1 1 1 1 1 0 1 1 0

输出

866263864

说明/提示

约束条件

  • 2N5×1042 \leq N \leq 5 \times 10^4
  • 1K5×1051 \leq K \leq 5 \times 10^5
  • Ai,Bi,Ci,Di{0,1}A_i, B_i, C_i, D_i \in \lbrace 0, 1 \rbrace
  • A1=D1A_1 = D_1
  • BN=CN1=CN=0B_N = C_{N-1} = C_N = 0

样例解释 1

将给定的图画出来如下所示。

满足条件的 walk 有如下 66 个:

  • 1,1,1,31, 1, 1, 3
  • 1,1,2,31, 1, 2, 3
  • 1,1,3,31, 1, 3, 3
  • 1,2,3,31, 2, 3, 3
  • 1,3,1,31, 3, 1, 3
  • 1,3,3,31, 3, 3, 3

由 ChatGPT 4.1 翻译