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

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

델타 사분면

시간 제한5초메모리 제한128 MB

요약
가중 트리에서 임의 행성에서 출발해 k개를 제외한 모든 행성을 방문하고 출발점으로 돌아오는 최단 폐회로를 구합니다.
난이도

보통10점 중 7점

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

문제

델타 사분면은 대부분 미탐사 상태이고, 서로 싸우는 종족이 자리 잡은 위험 구역이 곳곳에 있다. 다만 행성과 행성을 잇는 중립 지대가 몇 군데 있어서, 그 경로로는 안전하게 다닐 수 있다.

중요한 정상 회담이 잡혀 있지만 의결 정족수를 채우기 전까지는 열리지 않는다. 정족수를 채우려면 델타 사분면에 흩어진 대표를 거의 다 한곳에 모아야 하고, 엔터프라이즈호가 그 지점에서 대표단을 태운다.

행성은 NN개이고, 중립 지대를 지나는 안전한 경로 N−1N-1개가 행성을 잇는다. 경로마다 지나는 데 걸리는 시간이 정해져 있고, 어느 행성에서 어느 행성으로도 갈 수 있다.

우주선 한 대가 아무 행성에서나 출발해 출발한 행성을 포함한 서로 다른 행성 N−kN-k개를 방문하고 출발점으로 돌아온다. 같은 경로를 여러 번 지나도 된다. 이때 걸리는 시간의 최솟값을 구하라.

입력

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

각 테스트 케이스의 첫 줄에는 행성의 수 NN과 방문하지 않아도 되는 행성의 수 kk가 주어진다. (2≤N≤10 0002 \le N \le 10\,000, 0≤k≤min⁡(N−1, 20)0 \le k \le \min(N-1,\ 20))

다음 N−1N-1개의 줄에는 각각 세 정수가 주어진다. 순서대로 경로가 잇는 두 행성의 번호와 그 경로를 지나는 데 걸리는 시간이다. 행성 번호는 00부터 N−1N-1까지이고, 시간은 00 이상 1 000 0001\,000\,000 이하이다. 주어지는 그래프는 항상 연결되어 있다.

출력

각 테스트 케이스마다 필요한 최소 이동 시간을 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    3
    2 0
    0 1 3000
    4 1
    0 1 81
    1 2 41
    2 3 59
    9 2
    0 1 1000
    1 2 1200
    0 3 1000
    3 4 1200
    0 5 1000
    5 6 1200
    0 7 1800
    7 8 600
    
    예상 출력
    6000
    200
    13200