P0839

[Usaco2007 Dec]Building Roads 修建道路

[Usaco2007 Dec]Building Roads 修建道路

Farmer John 最近得到了一些新的农场。他希望修建一些道路,使所有农场都能通过已有道路或新建道路互相到达。目前,一些农场之间已经有道路相连。

共有 NN 个农场,依次编号为 11 到 NN。农场 ii 在地图上的坐标为 (Xi,Yi)(X_i,Y_i),连接两个农场的道路长度等于它们所对应坐标点之间的欧氏距离。

已知目前共有 MM 条道路。请计算为了使所有农场连通,至少需要新建多长的道路。

输入格式

第一行包含两个以空格分隔的整数 NN 和 MM,分别表示农场数量和已有道路数量。

接下来 NN 行,第 ii 行包含两个以空格分隔的整数 XiX_i 和 YiY_i,表示农场 ii 的坐标。

接下来 MM 行,每行包含两个以空格分隔的整数 ii 和 jj,表示农场 ii 与农场 jj 之间已有一条道路。

输出格式

输出一个实数,表示使所有农场连通所需新建道路的最小总长度,保留小数点后 22 位,无须进行任何额外的取整操作。

为避免精度误差,计算农场之间的距离及答案时应使用 6464 位浮点数。

样例输入

4 1
1 1
3 1
2 3
4 3
1 4

样例输出

4.00

样例解释

Farmer John 共有 44 个农场,坐标分别为 (1,1)(1,1)、(3,1)(3,1)、(2,3)(2,3) 和 (4,3)(4,3)。农场 11 与农场 44 之间已有道路相连。

数据范围

  • 1≤N≤1031\le N\le 10^3;
  • 1≤M≤1031\le M\le 10^3;
  • 0≤Xi≤1060\le X_i\le 10^6;
  • 0≤Yi≤1060\le Y_i\le 10^6。

来源与许可

本题为 USACO 2007 December 试题「Building Roads(修建道路)」,题面与测试数据整理自 BZOJ。

样例 1

输入

4 1
1 1
3 1
2 3
4 3
1 4

输出

4.00