#L0646. 航海寻宝的最小危险值

航海寻宝的最小危险值

题目描述

探险家陈明正在翡翠海域的 NN (1N1001 \le N \le 100) 座岛屿中寻找传说中的宝藏,这些岛屿编号为 1N1 \sim N

藏宝图告诉他,他必须按照特定的顺序 A1,A2,,AMA_1, A_2, \dots, A_M (2M1042 \le M \le 10^4) 依次经过这些岛屿,从岛屿 11 出发,最终到达岛屿 NN,宝藏才会现身。他可以途经这些岛屿之外的其他岛屿,也可以多次经过同一座岛屿,但他的路线中必须包含按顺序排列的 AiA_i 序列。

陈明希望尽量避开危险区域。已知每对岛屿之间的危险等级为 (0danger105)(0 \le danger \le 10^5)。整个航程的总危险等级等于他所经过的所有路径的危险等级之和。

请帮助陈明找到满足藏宝图要求的危险等级最小的航线。

输入格式

11 行是两个用空格分隔的整数 NNMM

接下来 MM 行,第 i+1i+1 行包含一个整数 AiA_i,表示第 ii 个必须经过的岛屿编号。

接下来 NN 行,第 i+M+1i+M+1 行包含 NN 个用空格分隔的整数,第 i+M+1i+M+1 行的第 jj 个整数表示岛屿 ii 与岛屿 jj 之间的路径危险等级。其中第 ii 个整数始终为 00

输出格式

一行一个整数,表示陈明完成整个航程所遇到的最小危险等级。

样例

3 4 
1 
2 
1 
3 
0 5 1 
5 0 2 
1 2 0
7

提示

本题中,有 33 座岛屿,藏宝图要求按顺序经过 44 座岛屿:岛屿 11、岛屿 22、岛屿 11、最后是岛屿 33。各路径的危险等级如下:路径 (1,2)(1, 2)(2,3)(2, 3)(3,1)(3, 1) 及其反向路径的危险等级分别为 552211

陈明可以按照 1323131 \to 3 \to 2 \to 3 \to 1 \to 3 的路线航行,总危险等级为 77。藏宝图要求的 (1,2,1,3)(1, 2, 1, 3) 序列被这条路线满足。通过绕行,他避免了岛屿 1122 之间危险等级较高的直接路径。

难度 普及
通过率
尝试 0
已通过 0
ID
1374
类型
传统题
Time Limit
1000ms
Memory Limit
125MiB
上传者