Module: 生成树:Kruskal 算法


Problem

4 /4


门户网站

Problem

Besi 位于 N (2≤N≤105) 个标记为 1…N 的顶点和标记为 1…2N 的 2N 个入口的网络上。每个门户连接两个不同的顶点 u 和 v (u≠v)。一组门户可以连接一些顶点。
每个顶点 v 都与四个不同的入口相邻。 v 的门户列表由 pv=[pv,1,pv,2,pv,3,p< sub>v ,4].

你当前的位置可以用一个有序的对表示(current vertex,current portal);也就是说,一对 (v,pv,i) 其中 1≤v≤N 和 1≤i≤4。您可以使用以下操作之一更改当前位置:

通过当前门户移动来更改当前顶点。
切换当前门户。在每个顶点,列表中的前两个入口配对,列表中的最后两个入口也配对。因此,如果您当前的状态是 (v,pv,2),那么您可以切换到使用门户 (v,pv,1) 并返回。同样,如果您当前的位置是 (v,pv,3),您可以切换到门户 (v,pv,4) 并返回。不允许其他切换(例如,您不能从门户 pv,2 切换到门户 pv,4)。
总共有4N种不同的状态。不幸的是,可能无法通过一系列给定操作从任何状态到达任何状态。因此,对于 cv (1≤cv≤1000) 卫星的成本,您可以按照您希望的任何顺序重新排列与 v 相邻的门户列表。之后,列表中的前两个 Portal 组合成一对,最后两个 Portal 组合成另一对。

例如,如果您按照 [pv,3,pv,1,pv,2, pv,4], 意思是。如果你在顶部 v,

如果您在 pv,1 门户中,您可以切换到 pv,3 门户并返回
如果您在 pv,2 门户中,您可以切换到 pv,4 门户并返回
现在你不能从 portal pv,1 切换到 pv,2,或者从 portal pv,3 切换到 portal p v,4 反之亦然。
计算修改网络所需的最小卫星数,使每个州都可以从每个州到达。保证测试数据的构建方式至少有一种方法可以通过这种方式修改网络。

输入: 
第一行包含N。
接下来的 N 行中的每一行都描述了一个顶点。字符串 v+1 包含 5 个空格分隔的整数 cv,pv,1,pv,2,pv ,3,pv,4.
保证对于每个v,所有pv,1,pv,2,pv,3,pv, 4个是不同的,每个入口出现在恰好两个顶点的列表中。

输出: 
一行包含修改网络以使每个状态从另一个状态可达所需的最小卫星数。
 
例子
<头> <正文>
# 输入 输出 解释
1 5
10 1 4 8 9
11 1 2 5 6
12 9 10 2 3
3 4 3 6 7
15 10 8 7 5 
13 交换顶点 1 和 4 的列表就足够了。这需要 c1+c4=13 muns。排列是:p1=[1,9,4,8​​] 和 p4=[7,4,6​​,3]。