[USACO 2008 Oct G]Power Failure
题号:NC24975
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

A vicious thunderstorm has destroyed some of the wires of the farm's electrical power grid! Farmer John has a map of all N (2 <= N <= 1,000) of the powerpoles, which are conveniently numbered 1..N and located on integer plane coordinates xi,yi (-100,000 <= xi <= 100000; -100,000 <= yi <= 100,000).
Some W (1 <= W <= 10,000) power wires connect pairs of power poles Pi and Pj (1 <= Pi <= N; 1 <= Pj <= N).
He needs to get power from pole 1 to pole N (which means that some series of wires can traverse from pole 1 to pole N, probably through some intermediate set of poles).
Given the locations of the N poles and the list of remaining power wires, determine the minimum length of power wire required to restore the electrical connection so that electricity can flow from pole 1 to pole N. No wire can be longer than some real number M (0.0 < M <= 200,000.0).
As an example, below on the left is a map of the 9 poles and 3 wires after the storm. For this task, M = 2.0. The best set of wires to add would connect poles 4 and 6 and also poles 6 and 9.
      After the storm              Optimally reconnected
3  . . . 7 9 . . . . .          3  . . . 7 9 . . . . .
                                          /
2  . . 5 6 . . . . . .          2  . . 5 6 . . . . . .
                                        /
1  2-3-4 . 8 . . . . .          1  2-3-4 . 8 . . . . .
   |                               |
0  1 . . . . . . . . .          0  1 . . . . . . . . .

   0 1 2 3 4 5 6 7 8 9             0 1 2 3 4 5 6 7 8 9

The total length is then 1.414213562 + 1.414213562 = 2.828427124 .
POINTS: 350

输入描述:

* Line 1: Two space-separated integers: N and W
* Line 2: A single real number: M
* Lines 3..N+2: Each line contains two space-separated integers: xi and yi
* Lines N+3..N+2+W: Two space-separated integers: Pi and Pj

输出描述:

* Line 1: A single integer on a single line. If restoring connection is impossible, output -1. Otherwise, output a single integer that is 1000 times the total minimum cost to restore electricity. Do not perform any rounding; truncate the resulting product.
示例1

输入

复制
9 3 
2.0 
0 0 
0 1 
1 1 
2 1 
2 2 
3 2 
3 3 
4 1 
4 3 
1 2 
2 3 
3 4 

输出

复制
2828

说明

Just as in the diagram above.