만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

수도를 연결하기

시간 제한2초메모리 제한512 MB

요약
각 수도의 차수가 정확히 1이 되도록 비수도 도시를 최소 비용 유로clidean 집합으로 연결합니다.
난이도

어려움10점 중 8점

유형
그래프, 최소 신장 트리, 기하, 동적 계획법
정답자
아직 제출이 없습니다

문제

어떤 먼 왕국에는 N개의 도시가 있고, 그중 K개가 수도이다. 리처드 왕은 두 도시를 잇는 송전선을 건설하려 한다. 임의의 두 수도 사이에는 송전선의 나열, 즉 경로가 존재해야 한다.

각 송전선에는 비용이 따르며, 이는 송전선이 연결하는 두 도시 사이의 유클리드 거리이다. 왕은 구두쇠라서 총비용(송전선 비용의 합)이 최소가 되도록 송전선을 건설하려 한다.

그림의 A 부분은 N = 10개의 도시와 K = 4개의 수도가 있는 왕국의 예를 보여준다. 수석 엔지니어는 왕에게 B 부분에 나온 해를 제시했고, 이 해는 실제로 총비용을 최소화한다. 하지만 왕은 한 수도에 송전선이 여러 개 연결된 모습이 마음에 들지 않았다. 그래서 새로운 제약을 내렸다. 수도는 다른 도시 하나에만 연결될 수 있다. 이렇게 열심히 일한 끝에 수석 엔지니어는 그림 C 부분에 나온 새 해를 제시했다. 다만 그 해가 최적인지 확신하지 못해 여러분의 도움이 필요하다!

도시의 좌표가 주어질 때, 임의의 두 수도가 경로로 연결되고 모든 수도가 다른 도시 하나에만 연결되도록 송전선을 건설하는 최소 총비용을 계산하는 프로그램을 작성하라.

입력

입력의 첫 줄에는 두 정수 N과 K가 주어진다. 4 ≤ N ≤ 100이고 3 ≤ K < min(10, N)이며, 각각 도시의 수와 수도의 수를 나타낸다. 다음 N개 줄에는 각각 두 정수 X와 Y가 주어지며, −1000 ≤ X, Y ≤ 1000으로 어떤 도시의 좌표를 나타낸다. 처음 K개의 도시가 수도이다. 좌표가 같은 두 도시는 없다.

출력

위 제약에 따라 송전선을 건설하는 최소 총비용을 소수점 아래 5자리까지 출력한다.

예제2

  1. 예제 1

    입력
    6 4
    -20 10
    -20 -10
    20 10
    20 -10
    -10 0
    10 0
    
    예상 출력
    76.56854
    
  2. 예제 2

    입력
    22 9
    -3 -25
    0 -6
    -1 -9
    2 -21
    -5 -19
    0 -23
    -2 24
    -4 37
    -3 33
    -3 -12
    2 39
    3 -49
    -3 -26
    2 24
    5 3
    -4 -9
    -2 -9
    -4 8
    3 -33
    -2 31
    -1 -13
    0 2
    
    예상 출력
    95.09318