序列粘贴 - 代码源竞赛平台

题目描述

蜗蜗正在使用一个序列编辑器。剪贴板中保存着长度为 nn 的整数序列 aa,编辑区中的序列 cc 初始为空。他希望把编辑区中的序列变成给定的、长度为 mm 的目标序列 bb。

蜗蜗可以执行任意次以下操作:

  • 粘贴:花费 xx,将完整的序列 aa 按原顺序追加到序列 cc 的末尾;
  • 修改:花费 yy,将序列 cc 中的一个元素加 11 或减 11;
  • 删除:花费 zz,删除序列 cc 中的一个元素,其他元素的相对顺序保持不变。

修改和删除只影响编辑区,不会改变剪贴板中的序列 aa。每次粘贴的都是原来的序列 aa。

请你求出使序列 cc 与目标序列 bb 完全相同所需的最小总费用。

输入格式

第一行包含一个整数 TT,表示测试用例数量。

对于每组测试用例:

  • 第一行包含五个整数 n,m,x,y,zn,m,x,y,z,分别表示两个序列的长度以及粘贴、修改、删除操作的费用;
  • 第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n,表示剪贴板中的序列;
  • 第三行包含 mm 个整数 b1,b2,…,bmb_1,b_2,\ldots,b_m,表示目标序列。

输出格式

对于每组测试用例,输出一行一个整数,表示得到目标序列所需的最小总费用。

样例

2
3 2 4 10 3
1 5 9
1 9
2 2 1 100 0
0 100
100 0
7
2

样例解释

第一组测试用例中,粘贴一次得到序列 [1,5,9][1,5,9],再删除中间的 55,即可得到目标序列 [1,9][1,9],总费用为 4+3=74+3=7。

第二组测试用例中,粘贴两次得到序列 [0,100,0,100][0,100,0,100],再删除第一个和最后一个元素,即可得到目标序列 [100,0][100,0]。删除操作的费用为 00,因此总费用为 1+1=21+1=2。

数据范围

对于 100% 的数据,保证 1≤T≤1041\le T\le 10^4,1≤n,m≤30001\le n,m\le 3000,0≤x,y,z≤1060\le x,y,z\le 10^6,0≤ai,bi≤1090\le a_i,b_i\le 10^9。

对于同一个输入文件中的所有测试用例,保证 ∑nm≤9×106\sum nm\le 9\times 10^6,∑(n+m)≤2×105\sum(n+m)\le 2\times 10^5。