设第 i 位最终都变成 ci,由于操作只能减小,所以一定有:
ci≤min(ai,bi)为了让操作次数最少,显然应让最终值尽量大,因此最优一定是:
笨蛋同学拿到两个长度均为 n 的非负整数数组 a1,a2,…,an与b1,b2,…,bn。 她可以反复执行以下三种操作(每次操作会让所选元素的值减 1;若被选中的元素当前为 0,则该次操作不允许执行):
操作1:选择一个下标 i,令ai=ai−1。
操作2:选择一个下标 j,令bj=bj−1。
操作3:选择两个下标 i,j(这里 i,j 可以相同,也可以不同。),同时令 ai=ai−1且bj=bj−1。
现在她希望通过若干次操作,使得最终对所有 1≤i≤n 都满足 ai=bi。
请你计算:最少需要多少次操作才能达成目标。
每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≤T≤2×105) 表示数据组数,每组测试数据描述如下:
第一行输入一个整数 n(1≤n≤2×105)。
第二行输入 n 个整数a1,a2,…,an(0≤ai≤109)。
第三行输入 n 个整数b1,b2,…,bn(0≤bi≤109)。
除此之外,保证单个测试文件中所有测试数据的 n 之和不超过2×105。
对于每组测试数据,新起一行输出一个整数,表示最少操作次数。
输入
2
4
1 2 3 4
2 1 3 5
3
0 0 5
2 1 0
输出
2
5
说明
第 1 组:可先执行一次操作 3,选 (i,j)=(2,1);再执行一次操作 2,选 j=4,即可使两数组完全相等,因此最少操作数为 2。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.