#2451. 寻宝之路

寻宝之路

题目描述

农夫约翰正驾驶一条小艇在牛勒比海上航行.

海上有N(1\red{N(1≤}N\red{N≤}100)\red{100)}个岛屿,用1\red{1}N\red{N}编号.约翰从1\red{1}号小岛出发,最后到达N\red{N}号小岛.一张藏宝图上说,如果他的路 程上经过的小岛依次出现了Ai\red{Ai,}A2\red{A2,}…,AM(2\red{AM(2≤}M\red{M≤}10000)\red{10000)}这样的序列(不一定相邻),那他最终就能找到古老的宝藏.

但是,由于牛勒比海有海盗出没.约翰知道任意两个岛屿之间的航线上海盗出没的概率,他用一个危险指数Dij(0\red{Dij(0≤}Dij\red{Dij≤}100000)\red{100000)}来描述.他希望他的寻宝活动经过的航线危险指数之和最小.

那么,在找到宝藏的前提下,这个最小的危险指数是多少呢?

输入格式

1\red{1}行输入N\red{N}M\red{M,}之后M\red{M}行一行一个整数表示A\red{A}序列,

之后输入一个N×N\red{N\times N}的方阵,表示两两岛屿之间航线的危险指数.

数据保证Dij=Dji\red{Dij=Dji,}Dii=0\red{Dii=0}

输出格式

最小的危险指数和.

样例

输入样例

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

输出样例

7

提示

输入详细信息:

3\red{3}个岛屿,藏宝图要求农民约翰按顺序访问4\red{4}个岛屿:岛1\red{1}、岛2\red{2}、岛1\red{1,}最后是岛3\red{3}。给出了路径的危险等级 :路径1\red{(1,}2\red{2)}(2,3)\red{(2, 3)}; 3\red{(3,}1\red{1)}和反向路径的危险等级分别为5\red{5}2\red{2}1\red{1}

输出详细信息:

他可以通过旅行获得总危险度为7\red{7}的宝藏岛1\red{1}3\red{3}2\red{2}3\red{3}1\red{1}3\red{3}的顺序。cow\red{cow}地图的要求1\red{(1}2\red{2}1\red{1}3\red{3)}对此路线满意。我们避开这条路岛屿1\red{1}2\red{2}之间,因为其危险等级较高。