#P2941. [USACO09FEB] Surround the Islands S
[USACO09FEB] Surround the Islands S
Description
Farmer John 在加勒比海购置了一片地产,准备在由一系列岛屿组成的农场上养奶牛。 出于他的意愿,他要把所有的岛屿都用篱笆围上。
每个岛都是多边形的。每一次,FJ 会给多边形的一个边(即相邻的两个顶点之间)装上篱笆。对于整个岛屿,他会按照顺时针顺序装上篱笆。由于他想要给所有的岛屿都装上篱笆,某些时候,他必须从一个岛屿坐船到另一个岛屿去。
FJ 可以从任何一个顶点开始装篱笆,也可以从任何一个顶点坐船到另一个岛的某个顶点上,从这个顶点开始把该岛屿的篱笆全都装好,然后马上坐船原路返回。保证任意两个顶点间都有航线。在任意两个顶点之间坐船的费用会在一个矩阵中给出。
所有的岛屿由给定的 对顶点 , 描述(即:给定顶点 与 相邻)。每个顶点具体属于哪个岛屿不会在输入中给出。所有顶点由 到 标号。
在顶点间坐船旅行的费用由一个 的矩阵给出。保证两个岛屿间两个方向的旅行费用相等且不会超过 。
请求出 FJ 把篱笆装完所需要的最小花费。
Input Format
第 行一个整数 。
第 至第 行:每行包含两个整数 和 ,表示这两个顶点在同一个岛屿上且相邻。
第 行至第 行:每行包含 个整数,第 行的第 个整数表示从 号顶点坐船到第 号顶点的花费。
Output Format
一行一个整数,表示 FJ 把篱笆装完所需要的最小花费。
12
1 7
7 3
3 6
6 10
10 1
2 12
2 9
8 9
8 12
11 5
5 4
11 4
0 15 9 20 25 8 10 13 17 8 8 7
15 0 12 12 10 10 8 15 15 8 8 9
9 12 0 25 20 18 16 14 13 7 12 12
20 12 25 0 8 13 14 15 15 10 10 10
25 10 20 8 0 16 20 18 17 18 9 11
8 10 18 13 16 0 10 9 11 10 8 12
10 8 16 14 20 10 0 18 20 6 16 15
13 15 14 15 18 9 18 0 5 12 12 13
17 15 13 15 17 11 20 5 0 22 8 10
8 8 7 10 18 10 6 12 22 0 11 12
8 8 12 10 9 8 16 12 8 11 0 9
7 9 12 10 11 12 15 13 10 12 9 0
30
Hint
对于所有数据,保证:
- 任意两个顶点之间的旅行花费
京公网安备 11011102002149号