만드는 중입니다

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

잭 에드먼즈

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

요약
맨해튼 거리 도로를 n-1개 이하로 지어, 출발점에서 모든 지점을 돌아오는 최단 왕복 경로의 길이를 구한다.
난이도

보통10점 중 7점

유형
최소 신장 트리, 그래프, 수학
정답자
아직 제출이 없습니다

문제

잭 에드먼즈는 미국의 컴퓨터 과학자다. 알고리즘 대회를 준비하는 사람에게는 최대 유량 문제를 O(∣V∣∣E∣2)O(|V||E|^2)에 푸는 에드먼즈-카프 알고리즘의 공동 고안자로 익숙하다. 그가 남긴 더 큰 기여는 코브햄-에드먼즈 논제일지도 모른다. 이 논제는 알고리즘이 실용적인지 판단하는 기준으로 다항 시간을 정의했다. 오늘날 우리는 P(결정론적 다항 시간)에 속한 문제를 효율적으로 풀 수 있는 문제로, NP(비결정론적 다항 시간)에 속한 문제를 효율적으로 검증할 수 있는 문제로 본다. P 대 NP 문제는 P와 NP가 같은지 묻는다. 컴퓨터 과학의 가장 큰 미해결 문제이고, 밀레니엄 문제 일곱 개 중 하나다. 대부분의 컴퓨터 과학자는 P ≠\ne NP라고 믿지만 아직 아무도 증명하지 못했다. 반대로 여러 사람이 어떤 NP-난해 문제가 P에 속함을 보여 P = NP를 증명하려 했고, 모두 실패했다.

외판원 문제는 NP-난해 문제의 한 예다. 목적지 목록과 모든 목적지 쌍 사이의 거리가 주어졌을 때, 출발지에서 시작해 모든 목적지를 방문하고 출발지로 돌아오는 가장 짧은 경로를 찾는 문제다. 그런데 이 문제에는 지도가 없다. 목적지의 좌표만 주어지고 도로는 아직 하나도 놓이지 않았다.

도로는 시장이 놓아 준다. 시장은 단순하고 게으르다. 도로 하나는 두 목적지 (xi,yi)(x_i, y_i)와 (xj,yj)(x_j, y_j)를 가로와 세로 선분만으로 직접 잇고, 그래서 길이가 ∣xi−xj∣+∣yi−yj∣|x_i - x_j| + |y_i - y_j|다. 또 도로를 n−1n - 1개보다 많이 놓지는 않는다. 어떤 도로를 놓을지는 당신이 정한다.

이동은 놓인 도로만 이용한다. 같은 도로를 여러 번 지나도 되고, 같은 목적지를 여러 번 거쳐도 된다. 첫 번째 목적지에서 출발해 모든 목적지를 방문하고 첫 번째 목적지로 돌아오는 가장 짧은 경로의 길이를 구하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. (1≤T≤201 \le T \le 20)

각 테스트 케이스의 첫째 줄에 목적지의 개수 nn이 주어진다. (1≤n≤10 0001 \le n \le 10\,000) 다음 nn개 줄에 목적지 하나의 좌표 xx와 yy가 공백으로 구분되어 주어진다. (−1 000≤x,y≤1 000-1\,000 \le x, y \le 1\,000) 가장 먼저 주어지는 목적지가 출발지다. 두 목적지의 좌표가 같을 수도 있다.

출력

각 테스트 케이스마다 모든 목적지를 방문하고 출발지로 돌아오는 가장 짧은 경로의 길이를 한 줄에 출력한다.

예제7

  1. 예제 1

    입력
    3
    3
    1 1
    2 2
    3 3
    4
    2 1
    -1 2
    -2 -1
    1 -2
    6
    1 2
    2 3
    2 2
    3 4
    4 3
    3 1
    
    예상 출력
    8
    24
    16
    
  2. 예제 2

    입력
    1
    1
    0 0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1
    2
    -1000 -1000
    1000 1000
    
    예상 출력
    8000
    
  4. 예제 4

    입력
    1
    4
    5 5
    5 5
    5 5
    5 5
    
    예상 출력
    0
    
  5. 예제 5

    입력
    1
    4
    -1000 -1000
    -1000 1000
    1000 1000
    1000 -1000
    
    예상 출력
    12000
    
  6. 예제 6

    입력
    1
    5
    -1000 0
    -500 0
    0 0
    500 0
    1000 0
    
    예상 출력
    4000
    
  7. 예제 7

    입력
    2
    3
    0 0
    0 0
    7 -7
    7
    0 0
    1 0
    -1 0
    0 1
    0 -1
    3 3
    -3 -3
    
    예상 출력
    28
    28