#G0120. 江桥的删除序列【2025暑假集训T6】

江桥的删除序列【2025暑假集训T6】

题目描述

给你一个长度为 nn 的数组 aa 和一个长度为 mm 的数组 bb (所有 1i<m1≤i<m 满足 bi>bi+1b_i>b_{i+1} )。

最初, kk 的值是 11 。你的目标是通过重复执行这两个操作中的一个,使数组 aa 为空:

  • 类型 1:如果 kk 的值小于 mm ,且数组 aa 不为空,则可以不花费任何代价将 kk 的值增加 11
  • 类型 2:删除数组 aa 的一个非空前缀,使得其总和不超过 bkb_k 。此操作的代价为 mkm−k

求使数组 aa 被删除为空的最小总代价。

如果无法通过任何操作序列实现,则输出 1−1 。否则,输出操作的最小总代价,以及产生这个最小代价的操作序列的数量对 109+710^9+7 取模。对于部分子任务,只需要求出最小总代价。

如果在任何一步中选择了不同的操作类型,或者在任何一步中删除的前缀大小不同,那么这两个操作序列就会被认为是不同的。

输入格式

输入包含多组数据。第一行两个整数 T,fT,f,表示数据组数和该组数据的子任务信息。

对于每组测试数据,第一行两个正整数 n,mn,m,表示数组 aabb 的元素数量。

接下来一行 nn 个正整数,表示 aia_i

接下来一行 mm 个正整数,表示 bib_i

请注意数据范围中对 n,m,bin,m,b_i 的限制。

输出格式

对于每组测试数据,如果答案存在,输出一行两个非负整数 x,yx,y,分别代表数组 aa 被删除为空的最小总代价和 f×f \times 产生这个最小代价的操作序列的数量对 109+710^9+7 取模。如果答案不存在,输出 -1

5 1
4 2
9 3 4 3
11 7
1 2
20
19 18
10 2
2 5 2 1 10 3 2 9 9 6
17 9
10 11
2 2 2 2 2 2 2 2 2 2
20 18 16 14 12 10 8 6 4 2 1
1 6
10
32 16 8 4 2 1
1 3
-1
2 11
10 42
4 1
5 0
4 2
9 3 4 3
11 7
1 2
20
19 18
10 2
2 5 2 1 10 3 2 9 9 6
17 9
10 11
2 2 2 2 2 2 2 2 2 2
20 18 16 14 12 10 8 6 4 2 1
1 6
10
32 16 8 4 2 1
1 0
-1
2 0
10 0
4 0

样例解释

在第一个测试案例中,有 33 个最佳操作序列,产生的总成本为 11

  • 所有 33 序列都以 22 类型的操作开始,移除前缀 [9][9] 以生成 a=[3,4,3]a = [3, 4, 3] ,产生的成本为 11 。然后,我们执行 11 类型操作,将 kk 的值增加 11 (此时 k=2k = 2) 。接下来的所有操作都会产生 00 的代价。
  • 其中一个序列是先删除前缀 [3,4][3, 4] 然后删除 [3][3]
  • 另一个序列是先删除前缀 [3][3] 然后删除 [4,3][4, 3]
  • 另一个序列是先删除前缀 [3][3] ,然后删除 [4][4][3][3]

在第二个测试案例中,不可能删除数组 a1>b1a_1 > b_1 之后的任何前缀,因此数组 aa 不能通过任何操作序列变为空。

数据规模与约定

下发文件

下发文件分别对应子任务 224466

有合理的子任务依赖。

子任务编号 n×m\sum n\times m≤ 特殊性质 分值
11 4040 f=0f = 0 1010
22 f=1f = 1
33 10310^3 f=0f = 0
44 f=1f = 1 2020
55 3×1053 \times 10^{5} f=0f = 0
66 f=1f = 1 3030

对于 100%100\% 的数据:保证 $1 \leq T \leq 10^3,f \in \{0,1\},1 \leq n,m,n\times m,\sum n \times m \leq 3 \times 10^{5},1 \leq a_i,b_i \leq 10^9,$ 所有 1i<m1≤i<m 满足 bi>bi+1b_i>b_{i+1}