P12249 [科大国创杯初中组 2025] 果汁
题目背景
Subtask 0 为民间数据,Subtask 1 为官方数据。
题目描述
小可可买了美味的果汁,但他太懒了,于是要求奶龙给他倒果汁。
有 $m$ 个水杯,第 $i$ 个水杯容量为 $V_i$。现在有 $n$ 个单位体积的果汁,小可可要求奶龙一共倒 $n$ 次(每次倒一个单位体积,正好倒完),第 $j$ 次倒果汁只能倒进第 $a_j$ 或 $a_j + 1$ 个水杯。具体的,如果第 $a_j$ 和 $a_j + 1$ 两个水杯都不是满的,那么可以任意倒入其中一个;如果有且仅有一个不是满的,那么只能倒入不是满的的那一个;如果都已经被倒满了,那么小奶龙就可以开心地喝掉这一个单位体积的果汁。并且为了方便,小可可会安排小奶龙从左向右倒果汁,也就是说对于所有 $1 \leq j < n$,保证 $a_j \leq a_{j+1}$。
小奶龙想知道自己最多能喝掉单位体积的果汁,你能帮帮他吗?
你一共需要解决 $T$ 组测试数据。
输入格式
第一行一个正整数 $T$,表示数据组数。
对于每组数据,第一行两个正整数 $n, m$,分别表示一共倒 $n$ 次以及有 $m$ 个水杯。
第二行 $m$ 个正整数 $V_i$。
第三行 $n$ 个正整数 $a_i$,保证 $a_i$ 单调不降。
输出格式
对于每组数据,输出一行一个数,表示小奶龙最多能喝掉多少单位体积的果汁。
说明/提示
### 样例 1 解释
一共倒三次,第一次可以倒进第一个或者第二个水杯,后两次可以倒进第二个或者第三个水杯。第一次倒进第二个水杯,第二次倒进第三个,此时后两个水杯都满了,第三次没法倒,故答案为 $1$。显然没有更优的答案。
### 数据规模与约定
- 对于 $20\%$ 的数据,保证 $n, m \leq 2$。
- 对于 $50\%$ 的数据,保证 $n, m \leq 8$。
- 对于另外 $20\%$ 的数据,保证所有 $V_i = 1$。
- 对于另外 $20\%$ 的数据,保证所有 $a_i$ 相同。
- 对于 $100\%$ 的数据,保证 $1 \leq T \leq 50, 1 \leq n \leq 3 \times 10^4, 2 \leq m \leq 3 \times 10^4, 1 \leq a_i < m, 1 \leq V_i \leq n$。且对于所有 $1 \leq i < n, a_i \leq a_{i+1}$。