#1190. Mobile Service

Mobile Service

SERVICE - Mobile Service

题面翻译

题目描述

有一个公司有 33 个流动员工。任何时刻只有一名员工可以移动,不允许同一位置上有 22 个及以上员工。

每次移动需要花费,从位置 pp 移动到位置 qq 需要花费 c(p,q)c(p,q) 的价钱。不移动不需要花费(即 c(i,i)=0c(i,i)=0 )但不保证 c(p,q)=c(q,p)c(p,q)=c(q,p)

现在给出 NN 个请求,第 ii 个请求发生在位置 xix_i 。公司必须按照顺序,派一名员工到位置 xix_i ,过程中不能去其他地方,也就是必须直接过去。

33 个流动员工的初始位置分别为 1,2,31,2,3

求公司的最小花费。

输入格式

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

每组数据的第一行有两个数 L,NL,N ,表示有 LL 个位置和 NN 个请求。

接下来的 LL 行中的每一行都包含 LL 个非负整数。其中第 i+1i+1 行第 jj 个数是 c(i,j)c(i,j) ,表示价钱。

最后一行,有 nn 个整数,分别为 x1,x2,x3...xnx_1,x_2,x_3 ... x_n 表示请求的位置。

输出格式

一行一个数,表示每组数据的最小花费。

数据范围与说明

对于 100%100\% 的数据满足 3L200,1N1000,0c(i,j)20003 \le L \le 200 , 1 \le N \le 1000 ,0 \le c(i,j) \le 2000

样例 #1

样例输入 #1

1
5 9
0 1 1 1 1
1 0 2 3 2
1 1 0 4 1
2 1 5 0 1
4 2 3 4 0
4 2 4 1 5 4 3 2 1

样例输出 #1

5