AT_abc317_h.[ABC317Ex] Walk
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个有 N 个顶点的有向图,顶点编号为 1 到 N。图中不存在重边,但可能存在自环。此外,图中所有的边都满足以下条件:
- 假设有一条从顶点 s 指向顶点 t 的边,则 s, t 至少满足 0≤t−s≤2 或 t=1 之一。
图中边的存在情况由长度为 N 的数列 A,B,C,D 给出。A, B, C, D 的每个元素含义如下(以下 A 的第 n 个元素记为 An,Bn, Cn, Dn 同理):
- An:如果存在从顶点 n 到顶点 n 的边,则 An=1,否则 An=0。
- Bn:如果存在从顶点 n 到顶点 n+1 的边,则 Bn=1,否则 Bn=0(其中 BN=0)。
- Cn:如果存在从顶点 n 到顶点 n+2 的边,则 Cn=1,否则 Cn=0(其中 CN−1=CN=0)。
- Dn:如果存在从顶点 n 到顶点 1 的边,则 Dn=1,否则 Dn=0(其中 D1=A1)。
请你求出,在给定的图中,从顶点 1 出发,以顶点 N 结束,且恰好经过 K 条边的 walk 的数量,并对 998244353 取模。
这里,“从顶点 1 出发,以顶点 N 结束,且恰好经过 K 条边的 walk”指的是一个顶点序列 v0=1,v1,…,vK=N,对于每个 i(0≤i<K),存在从 vi 到 vi+1 的有向边。两个 walk 只要顶点序列不同就视为不同。
输入格式
输入以如下格式从标准输入给出。
N K A1 A2 … AN B1 B2 … BN C1 C2 … CN D1 D2 … DN
输出格式
请输出从顶点 1 出发,以顶点 N 结束,且恰好经过 K 条边的 walk 的数量,对 998244353 取模。
输入输出样例
输入#1
3 3 1 0 1 1 1 0 1 0 0 1 0 1
输出#1
6
输入#2
4 6 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0
输出#2
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
输出#3
866263864
说明/提示
约束条件
- 2≤N≤5×104
- 1≤K≤5×105
- Ai,Bi,Ci,Di∈{0,1}
- A1=D1
- BN=CN−1=CN=0
样例解释 1
将给定的图画出来如下所示。

满足条件的 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 翻译
输入解题思路,AI测评打分。不知道怎么写?