解题思路
设按排列 b 取出的顺序对应的数列为
si=abi
那么第一种操作“选择一个整数 x,获得权值 ∑i=1xabi”,本质上就是:
题目内容
给定一个长度为 n 的整数数组 a1,a2,…,an,以及两个长度为 n 的排列b1,b2,…,bn 与 c1,c2,…,cn。
你可以至多各执行一次下列两种操作,执行顺序可以任意:
- 选择一个整数 x(1≤x≤n),获得权值 ∑i=1xabi;
- 选择一个整数y(1≤y≤n),依次将 ac1,ac2,…,acy 修改为 0。
你也可以选择不执行其中某个操作;若两种操作均不执行,则权值为0。
请输出能够获得的最大权值。
排列:长度为 n 的排列是由 1∼n 这n 个整数按任意顺序组成的数组,其中每个整数恰好出现一次。。
输入描述
每个测试文件均包含多组测试数据:第一行输入一个整数 T(1≤T≤104),代表数据组数。每组测试数据描述如下:
-
第一行输入一个整数 n(1≤n≤2×105),表示数组和排列的长度;
-
第二行输入n个整数 a1,a2,…,an(−109≤ai≤109),表示数组a;
-
第三行输入 n个整数b1,b2,…,bn(1≤bi≤n),表示排列b;
-
第四行输入 n 个整数 c1,c2,…,cn(1≤ci≤n),表示排列c。
除此之外,保证单个测试文件的 n 之和不超过 2×105。
输出描述
对于每一组测试数据,新起一行,输出一个整数,表示能够获得的最大权值。
样例1
输入
3
3
2 -3 4
1 3 2
2 1 3
4
5 -10 6 3
1 2 3 4
2 4 1 3
1
-1
1
1
输出
6
14
0
说明
- 在第二组样例中:若先选择y=1,将 a2 置为0,得到数组a=[5,0,6,3];随后选择 x=4,可获得权值 ∑4abi=5+0+6+3=14;这是本组数据的最优解。