TSP

시간 제한4초메모리 제한1024 MB

요약
10^18개 정점의 완전 이진 트리에서 K개 정점이 주어질 때, 모두 한 번 이상 지나는 최단 경로의 길이를 구한다.
난이도

보통10점 중 6점

유형
트리, 그리디, 수학, 구현
정답자
아직 제출이 없습니다

문제

101810^{18}개의 정점으로 이루어진 트리가 있습니다. 이 트리에는 2≤i≤10182 \le i \le 10^{18}인 ii에 대해, ii번째 정점과 ⌊i2⌋\left\lfloor \frac{i}{2} \right \rfloor번째 정점을 잇는 간선이 있습니다.

이 트리에서 KK개의 정점 v_1,v_2,⋯ ,v_Kv\_1, v\_2, \cdots, v\_K가 주어집니다. 임의의 정점에서 시작해서 주어진 KK개의 정점을 각각 한 번 이상 방문하는 경로 중, 가장 짧은 경로의 길이를 구하세요.

입력

첫 줄에 테스트케이스의 수 TT가 주어집니다. (1≤T≤10,000)(1 \le T \le 10\\,000)

각 테스트케이스의 첫 줄에 정점의 수 KK가 주어집니다. (2≤K≤100,000)(2 \le K \le 100\\,000)

둘째 줄에는 주어진 정점의 번호 v_1,v_2,⋯ ,v_Kv\_1, v\_2, \cdots, v\_K가 공백으로 구분되어 주어집니다. 모든 v_iv\_i는 서로 다릅니다. (1≤v_i≤1018)(1 \le v\_i \le 10^{18})

주어지는 모든 입력은 정수입니다.

모든 테스트케이스에서 KK의 합이 100,000100\\,000을 넘지 않습니다.

출력

각 테스트케이스마다 한 줄에 하나씩, 임의의 정점에서 시작해서 주어진 KK개의 정점을 각각 한 번 이상 방문하는 경로 중, 가장 짧은 경로의 길이를 출력하세요.

힌트

길이 LL인 트리의 경로는 방문한 정점을 차례로 나열한 수열 p_0,p_1,⋯ ,p_Lp\_0, p\_1, \cdots, p\_L로 표현되며, 1≤i≤L1 \le i \le L에 대해 p_i−1p\_{i-1}과 p_ip\_i가 서로 간선으로 연결되어 있어야 합니다. 같은 정점 혹은 간선을 여러 번 방문해도 됩니다.

예제1

  1. 예제 1

    입력
    2
    3
    3 6 7
    4
    31 41 59 26
    
    예상 출력
    2
    20