아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

네트워크 지름 줄이기

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

요약
트리 간선 가중치를 단위당 비용으로 줄여 지름이 D 이하가 되도록 하는 최소 총비용을 구합니다.
난이도

어려움10점 중 8점

유형
그리디, 트리, 동적 계획법, 정렬
정답자
아직 제출이 없습니다

문제

어떤 나라의 컴퓨터 네트워크는 트리 구조다. 즉 두 노드 사이에는 경로가 정확히 하나 있다. 간선 (j,k)(j,k)의 가중치 w(j,k)w(j,k)는 노드 jj에서 노드 kk로 메시지를 보내는 데 걸리는 시간이고, w(j,k)=w(k,j)w(j,k) = w(k,j)라고 가정한다. 두 노드 ss와 tt 사이 경로의 길이는 그 경로에 놓인 간선 가중치의 합이다. 트리 네트워크의 지름은 두 노드를 잇는 경로 가운데 가장 긴 것의 길이다. 예를 들어 그림 1의 네트워크는 노드 1과 노드 6을 잇는 경로 때문에 지름이 30이다. 지름은 네트워크에서 통신이 겪는 가장 큰 지연과 같으므로 컴퓨터 네트워크의 중요한 값이다.

그림 1. 트리 네트워크

이제 간선에 비용을 지불해 통신 시간을 줄일 수 있다고 하자. 간선 (j,k)(j,k)에 비용 cc를 지불하면 w(j,k)w(j,k)가 max⁡{w(j,k)−c, 0}\max\{w(j,k)-c,\ 0\}으로 줄어든다. 비용 cc로는 음이 아닌 실수를 아무거나 쓸 수 있다. 트리 네트워크의 지름이 DD 이하가 되게 하는 최소 비용을 구하려 한다. 그림 1의 네트워크에서 목표 지름이 D=26D = 26이면 최소 비용은 4다. 간선 (5,6)(5,6)에 비용 4를 지불해 가중치 9를 5로 줄이면 된다. D=0D = 0이면 모든 간선의 가중치를 0으로 만들어야 하므로 최소 비용은 40이다. D=19D = 19이면 간선 (2,3)(2,3)에 3.5, 간선 (3,4)(3,4)에 0.5, 간선 (3,5)(3,5)에 7.5를 지불해 최소 비용이 11.5가 된다. 트리 네트워크와 목표 지름 DD가 주어질 때 최소 비용을 구하는 프로그램을 작성하라.

입력

입력은 표준 입력으로 주어진다. 첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스의 첫 줄에는 노드 수 nn (1≤n≤40,0001 \le n \le 40{,}000)과 목표 지름 DD (0≤D≤50,0000 \le D \le 50{,}000)가 주어진다. 이어지는 n−1n-1개 줄에는 간선 하나를 나타내는 정수 세 개가 주어진다. 앞의 두 정수는 간선의 두 끝 노드이고, 세 번째 정수는 간선의 가중치다. 각 간선의 가중치는 11 이상 50,00050{,}000 이하의 정수이고, 노드 번호는 11 이상 nn 이하의 정수다. 처음 가중치는 정수로 주어지지만, 실수 비용을 지불해 가중치를 실수로 줄일 수 있다.

출력

출력은 표준 출력으로 한다. 각 테스트 케이스마다 트리 네트워크의 지름을 DD 이하로 만드는 최소 비용을 한 줄에 출력한다. 소수점 아래 둘째 자리에서 반올림해 소수점 아래 첫째 자리까지 출력한다.

예제3

  1. 예제 1

    입력
    3
    6 26
    1 2 7
    6 5 9
    5 3 8
    3 2 6
    4 3 10
    6 0
    1 2 7
    6 5 9
    5 3 8
    3 2 6
    4 3 10
    6 19
    1 2 7
    6 5 9
    5 3 8
    3 2 6
    4 3 10
    
    예상 출력
    4.0
    40.0
    11.5
    
  2. 예제 2

    입력
    4
    1 0
    2 0
    1 2 5
    2 5
    1 2 10
    2 11
    1 2 10
    
    예상 출력
    0.0
    5.0
    5.0
    0.0
    
  3. 예제 3

    입력
    3
    4 10
    1 2 10
    1 3 10
    1 4 10
    4 9
    1 2 10
    1 3 10
    1 4 10
    4 0
    1 2 10
    1 3 10
    1 4 10
    
    예상 출력
    15.0
    16.5
    30.0