#P12249. [科大国创杯初中组 2025] 果汁

    ID: 13905 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 2 上传者: 标签>贪心2025安徽科创活动初中活动科大国创杯

[科大国创杯初中组 2025] 果汁

题目背景

Subtask 0 为民间数据,Subtask 1 为官方数据。

题目描述

小可可买了美味的果汁,但他太懒了,于是要求奶龙给他倒果汁。

mm 个水杯,第 ii 个水杯容量为 ViV_i。现在有 nn 个单位体积的果汁,小可可要求奶龙一共倒 nn 次(每次倒一个单位体积,正好倒完),第 jj 次倒果汁只能倒进第 aja_jaj+1a_j + 1 个水杯。具体的,如果第 aja_jaj+1a_j + 1 两个水杯都不是满的,那么可以任意倒入其中一个;如果有且仅有一个不是满的,那么只能倒入不是满的的那一个;如果都已经被倒满了,那么小奶龙就可以开心地喝掉这一个单位体积的果汁。并且为了方便,小可可会安排小奶龙从左向右倒果汁,也就是说对于所有 1j<n1 \leq j < n,保证 ajaj+1a_j \leq a_{j+1}

小奶龙想知道自己最多能喝掉单位体积的果汁,你能帮帮他吗?

你一共需要解决 TT 组测试数据。

输入格式

第一行一个正整数 TT,表示数据组数。

对于每组数据,第一行两个正整数 n,mn, m,分别表示一共倒 nn 次以及有 mm 个水杯。

第二行 mm 个正整数 ViV_i

第三行 nn 个正整数 aia_i,保证 aia_i 单调不降。

输出格式

对于每组数据,输出一行一个数,表示小奶龙最多能喝掉多少单位体积的果汁。

1
3 3
1 1 1
1 2 2
1

提示

样例 1 解释

一共倒三次,第一次可以倒进第一个或者第二个水杯,后两次可以倒进第二个或者第三个水杯。第一次倒进第二个水杯,第二次倒进第三个,此时后两个水杯都满了,第三次没法倒,故答案为 11。显然没有更优的答案。

数据规模与约定

  • 对于 20%20\% 的数据,保证 n,m2n, m \leq 2
  • 对于 50%50\% 的数据,保证 n,m8n, m \leq 8
  • 对于另外 20%20\% 的数据,保证所有 Vi=1V_i = 1
  • 对于另外 20%20\% 的数据,保证所有 aia_i 相同。
  • 对于 100%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$。且对于所有 1i<n,aiai+11 \leq i < n, a_i \leq a_{i+1}