#M250724. 美丽的矩阵

美丽的矩阵

题目描述

现在有一个 nnnn 列的矩阵。位于第 ii 行第 jj 列的数值为 hi,jh_{i,j}

当矩阵中任意两个相邻元素都不相同时,这个矩阵才是美丽的。换句话说,必须满足以下条件:

  • 不存在位置 (i,j)(i,j)1in1 \leq i \leq n1jn11 \leq j \leq n-1)使得 hi,j=hi,j+1h_{i,j} = h_{i,j+1}
  • 不存在位置 (i,j)(i,j)1in11 \leq i \leq n-11jn1 \leq j \leq n)使得 hi,j=hi+1,jh_{i,j} = h_{i+1,j}

你可以使用两种类型的操作,且每个操作只能使用一次,操作具体如下:

使用第 iiAA 操作要花费 aia_i 枚金币。使用后:

  • 将第 ii 行所有元素增加 11。即,将 hi,1,hi,2,,hi,nh_{i,1}, h_{i,2}, \ldots, h_{i,n} 都增加 11

使用第 jjBB 操作要花费 bjb_j 枚金币。使用后:

  • 将第 jj 列所有元素增加 11。即,将 h1,j,h2,j,,hn,jh_{1,j}, h_{2,j}, \ldots, h_{n,j} 都增加 11

请计算使矩阵变得美丽所需的最少金币数,如果不可能实现则返回 1-1

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt。接下来是各个测试用例的描述。

每个测试用例的第一行包含一个整数 nn——矩阵的大小。

接下来每个测试用例的 nn 行中,第 ii 行包含 nn 个整数 hi,1,hi,2,,hi,nh_{i,1}, h_{i,2}, \ldots, h_{i,n}

每个测试用例的下一行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n——操作 AA 的费用。

每个测试用例的下一行包含 nn 个整数 b1,b2,,bnb_1, b_2, \ldots, b_n——操作 BB 的费用。

输出格式

对于每个测试用例,输出一个整数——所需的最少金币数,如果不可能则输出 1-1

输入输出样例

4
2
1 2
2 1
100 100
100 100
4
1 2 1 2
3 2 1 2
1 2 1 1
1 3 1 2
1 2 3 4
5 6 7 8
3
1 2 2
2 2 1
2 1 1
100 100 100
100 100 100
6
8 7 2 8 4 8
7 7 9 7 1 1
8 3 1 1 8 5
6 8 3 1 1 4
1 4 5 1 9 6
7 1 1 6 8 2
11 23 20 79 30 15
15 83 73 57 34 63
0
14
-1
183

样例 #1\tt \#1说明

对于第一个测试用例,可以看到矩阵已经是美丽的,因此答案为 00

对于第二个测试用例,我们可以使用第 22 个和第 44 个操作 AA ,以及第 44 个操作 BB

  • 初始状态:
    1 2 1 2
    3 2 1 2
    1 2 1 1
    1 3 1 2
    
  • 使用第 22 个操作 AA 后:
    1 2 1 2
    4 3 2 3
    1 2 1 1
    1 3 1 2
    
  • 使用第 44 个操作 AA 后:
    1 2 1 2
    4 3 2 3
    1 2 1 1
    2 4 2 3
    
  • 使用第 44 个操作 BB 后:
    1 2 1 3
    4 3 2 4
    1 2 1 2
    2 4 2 4
    

此时矩阵变得美丽,总费用为 2+4+8=142 + 4 + 8 = 14,这是可能的最小费用。

对于第三个测试用例,无论如何操作都无法使矩阵变得美丽,因此答案为 1-1

数据范围

  • 对于 30%30\% 的数据,保证所有测试用例的 nn 之和不超过 1010
  • 对于 100%100\% 的数据,保证 1t1001 \le t \le 1001hi,j,ai,bj1091 \le h_{i, j}, a_i, b_j \le 10^9 且所有测试用例的 nn 之和不超过 10001000