AT_abc317_h [ABC317Ex] Walk

题目描述

有一个有 $N$ 个顶点的有向图,顶点编号为 $1$ 到 $N$。图中不存在重边,但可能存在自环。此外,图中所有的边都满足以下条件: - 假设有一条从顶点 $s$ 指向顶点 $t$ 的边,则 $s,\ t$ 至少满足 $0 \leq t - s \leq 2$ 或 $t = 1$ 之一。 图中边的存在情况由长度为 $N$ 的数列 $A,B,C,D$ 给出。$A,\ B,\ C,\ D$ 的每个元素含义如下(以下 $A$ 的第 $n$ 个元素记为 $A_n$,$B_n,\ C_n,\ D_n$ 同理): - $A_n$:如果存在从顶点 $n$ 到顶点 $n$ 的边,则 $A_n = 1$,否则 $A_n = 0$。 - $B_n$:如果存在从顶点 $n$ 到顶点 $n+1$ 的边,则 $B_n = 1$,否则 $B_n = 0$(其中 $B_N = 0$)。 - $C_n$:如果存在从顶点 $n$ 到顶点 $n+2$ 的边,则 $C_n = 1$,否则 $C_n = 0$(其中 $C_{N-1} = C_N = 0$)。 - $D_n$:如果存在从顶点 $n$ 到顶点 $1$ 的边,则 $D_n = 1$,否则 $D_n = 0$(其中 $D_1 = A_1$)。 请你求出,在给定的图中,从顶点 $1$ 出发,以顶点 $N$ 结束,且恰好经过 $K$ 条边的 walk 的数量,并对 $998244353$ 取模。 这里,“从顶点 $1$ 出发,以顶点 $N$ 结束,且恰好经过 $K$ 条边的 walk”指的是一个顶点序列 $v_0 = 1, v_1, \dots, v_K = N$,对于每个 $i$($0 \leq i < K$),存在从 $v_i$ 到 $v_{i+1}$ 的有向边。两个 walk 只要顶点序列不同就视为不同。

输入格式

输入以如下格式从标准输入给出。 > $N$ $K$ $A_1$ $A_2$ $\dots$ $A_N$ $B_1$ $B_2$ $\dots$ $B_N$ $C_1$ $C_2$ $\dots$ $C_N$ $D_1$ $D_2$ $\dots$ $D_N$

输出格式

请输出从顶点 $1$ 出发,以顶点 $N$ 结束,且恰好经过 $K$ 条边的 walk 的数量,对 $998244353$ 取模。

说明/提示

## 约束条件 - $2 \leq N \leq 5 \times 10^4$ - $1 \leq K \leq 5 \times 10^5$ - $A_i, B_i, C_i, D_i \in \lbrace 0, 1 \rbrace$ - $A_1 = D_1$ - $B_N = C_{N-1} = C_N = 0$ ## 样例解释 1 将给定的图画出来如下所示。 ![](https://img.atcoder.jp/abc317/2106e1b4faaa87d208ed3e3a275cda1b.jpg) 满足条件的 walk 有如下 $6$ 个: - $1, 1, 1, 3$ - $1, 1, 2, 3$ - $1, 1, 3, 3$ - $1, 2, 3, 3$ - $1, 3, 1, 3$ - $1, 3, 3, 3$ 由 ChatGPT 4.1 翻译