C. 两个序列(array)

    传统题 文件IO:array 1000ms 256MiB

两个序列(array)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

读写要求

本题采用文件读写,请在提交代码时使用正确的文件读写方式,否则会导致 RE

输入:array.in

输出:array.out

题目描述

给定两个数组 a1,a2,,ana_1, a_2, \dots , a_nb1,b2,,bmb_1, b_2, \dots , b_m。数组 bb 已经按升序排列(对于每个 ii,有 bi<bi+1b_i < b_{i+1}1i<m1 \leq i < m)。

你需要将数组 aa 划分为 mm 个连续子数组,使得对于每个 ii1im1 \leq i \leq m),第 ii 个子数组的最小值等于 bib_i。注意,每个元素恰好属于一个子数组,划分方式如下:aa 的前若干个元素组成第一个子数组,接下来的若干个元素组成第二个子数组,依此类推。

例如,如果 a=[12,10,20,20,25,30]a = [12, 10, 20, 20, 25, 30]b=[10,20,30]b = [10, 20, 30],那么数组 aa 有两种合法的划分方式:

  1. [12,10,20],[20,25],[30][12, 10, 20], [20, 25], [30]
  2. [12,10],[20,20,25],[30][12, 10], [20, 20, 25], [30]

你需要计算将数组 aa 划分的方法数。由于答案可能很大,请输出对 998244353998244353 取模后的结果。

输入格式

第一行包含两个整数 nnmm1n,m2×1051 \leq n, m \leq 2 \times 10^5),分别表示数组 aabb 的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots , a_n1ai1091 \leq a_i \leq 10^9),表示数组 aa

第三行包含 mm 个整数 b1,b2,,bmb_1, b_2, \dots , b_m1bi109;bi<bi+11 \leq b_i \leq 10^9; b_i < b_{i+1}),表示数组 bb

输出格式

仅一行,输出将数组 aa 划分的方法数,对 998244353998244353 取模。

输入输出样例

6 3
12 10 20 20 25 30
10 20 30
2
4 2
1 3 3 7
3 7
0
8 2
1 2 2 2 2 2 2 2
1 2
7

周赛#1027(div2)复现赛

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-5-23 21:00
结束于
2026-5-30 13:00
持续时间
1.5 小时
主持人
参赛人数
8