CF2027D1 The Endspeaker (Easy Version)

题目描述

这是该问题的简单版本。唯一的区别在于,在本版本中你只需要输出操作的最小总代价。你必须同时完成两个版本才能进行 hack。 给定一个长度为 $n$ 的数组 $a$,以及一个长度为 $m$ 的数组 $b$(满足对于所有 $1 \le i < m$,都有 $b_i > b_{i+1}$)。初始时,$k$ 的值为 $1$。你的目标是通过重复执行以下两种操作之一,使数组 $a$ 变为空: - 类型 $1$ —— 如果 $k$ 的值小于 $m$ 且数组 $a$ 非空,你可以将 $k$ 的值加 $1$。此操作不产生任何代价。 - 类型 $2$ —— 你可以移除数组 $a$ 的一个非空前缀,前提是该前缀的元素和不超过 $b_k$。此操作的代价为 $m - k$。 你需要最小化将数组 $a$ 变为空所需操作的总代价。如果无法通过任何操作序列将 $a$ 变为空,则输出 $-1$。否则,输出操作的最小总代价。

输入格式

每个测试包含多组测试用例。第一行包含测试用例数 $t$($1 \le t \le 1000$)。接下来是每个测试用例的描述。 每个测试用例的第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 3 \cdot 10^5$,$\boldsymbol{1 \le n \cdot m \le 3 \cdot 10^5}$)。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^9$)。 第三行包含 $m$ 个整数 $b_1, b_2, \ldots, b_m$($1 \le b_i \le 10^9$)。 保证对于所有 $1 \le i < m$,都有 $b_i > b_{i+1}$。 保证所有测试用例中 $\boldsymbol{n \cdot m}$ 的总和不超过 $3 \cdot 10^5$。

输出格式

对于每个测试用例,如果可以将 $a$ 变为空,则输出操作的最小总代价。 如果不存在任何可以将 $a$ 变为空的操作序列,则输出一个整数 $-1$。

说明/提示

在第一个测试用例中,一种总代价为 $1$ 的最优操作序列如下: - 执行一次类型 $2$ 操作。选择前缀为 $[9]$。此操作代价为 $1$。 - 执行一次类型 $1$ 操作。此时 $k$ 变为 $2$。此操作无代价。 - 执行一次类型 $2$ 操作。选择前缀为 $[3, 4]$。此操作代价为 $0$。 - 执行一次类型 $2$ 操作。选择前缀为 $[3]$。此操作代价为 $0$。 - 此时数组 $a$ 已为空,所有操作的总代价为 $1$。 在第二个测试用例中,无法移除任何前缀,因为 $a_1 > b_1$,因此无法通过任何操作序列将数组 $a$ 变为空。 由 ChatGPT 4.1 翻译