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

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

아가멤논의 오디세이

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

요약
가중치가 있는 트리와 사용 횟수 제한 k가 주어질 때, 각 간선을 k번 이하로만 사용하고 처음 지날 때만 가중치를 얻는 보행을 찾아 얻을 수 있는 자원의 최댓값을 구한다.
난이도

어려움10점 중 8점

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

문제

예시 지도

미케네의 위대한 왕 아가멤논은 트로이 해안으로 원정을 떠나기 위해 아울리스에서 군대를 소집하고 있었다. 그때 아가멤논은 여신 아르테미스의 환영을 보았다. 그 환영에서 아가멤논은 자신이 아르테미스에게 바쳐진 사슴을 실수로 죽였다는 사실을 알게 되었고, 여신은 아가멤논이 트로이로 가는 항해에서 고통받게 만들겠다고 맹세했다.

아가멤논은 트로이로 향하는 길에 크레타 섬들에 들러 강력한 군대를 위한 자원을 모을 계획이었다. 아르테미스가 아가멤논이 택한 항로를 알게 된다면, 그녀는 자신의 힘으로 그 항로의 바람을 멈춰 아가멤논과 선원들을 꼼짝 못 하게 만들 것이다. 이제 아가멤논의 충실한 조언자인 당신은, 아르테미스에게 항로를 들키지 않으면서 군대가 최대한 많은 자원을 모을 수 있는 크레타 섬들 사이의 경로를 짜내야 한다.

크레타의 NN개 섬은 N−1N-1개의 항로로 서로 연결되어 있다. 각 항로에서 아가멤논은 일정량의 자원을 얻을 수 있다. 그러나 어떤 항로를 kk번보다 많이 사용하면 아르테미스가 그 항로에서 아가멤논의 존재를 감지하고 그 항로의 바람을 멈춘다. 따라서 실행 가능한 계획은 어떤 항로도 kk번보다 많이 사용할 수 없다.

아가멤논은 크레타의 어떤 섬에서든 출발하고 끝낼 수 있으니, 아가멤논이 얻는 자원을 최대화하는 실행 가능한 계획을 세워라. 아가멤논은 항로를 처음 사용할 때만 그 항로에서 자원을 모을 수 있다. 항로를 다시 사용할 때는 추가 자원을 얻지 못한다.

입력

첫 번째 줄에는 두 정수 NN (1≤N≤2⋅1051 \leq N \leq 2 \cdot 10^5)과 kk (1≤k≤1091 \leq k \leq 10^9)가 주어진다. NN은 크레타 섬의 수이고, kk는 아르테미스에게 들키지 않고 한 항로를 사용할 수 있는 최대 횟수이다. 크레타의 섬들은 항로로 연결되어 있음이 보장된다.

다음 N−1N-1개 줄은 항로를 설명한다. 각 줄에는 세 정수 u,vu, v (1≤u,v≤N,u≠v1 \leq u, v \leq N, u \neq v)와 cc (1≤c≤1091 \leq c \leq 10^9)가 주어지며, 이는 항로가 섬 uu와 vv를 연결하고 아가멤논이 이 항로에서 cc단위의 자원을 얻을 수 있음을 뜻한다. 모든 항로는 양방향이다. 즉, 섬 uu에서 vv로, 또는 섬 vv에서 uu로 이동하는 데 사용할 수 있다.

출력

문제에서 설명한 실행 가능한 계획으로 아가멤논이 얻을 수 있는 최대 자원량을 한 개의 값으로 출력한다.

힌트

크레타에는 55개의 섬이 있고 그림과 같이 44개의 항로로 연결되어 있다. 첫 번째 항로는 섬 11과 22를 연결하며 아가멤논이 33단위의 자원을 얻을 수 있고, 나머지도 마찬가지다. 이 군도에서 아가멤논에게 가장 좋은 계획은 섬 44에서 출발해 섬 11을 방문하고(4→14\to1 항로에서 55단위의 자원을 얻는다), 섬 55에서 경로를 끝내는 것이다(1→51\to5 항로에서 99단위의 자원을 더 얻는다). 이렇게 하면 총 1414단위의 자원을 얻는다.

예제2

  1. 예제 1

    입력
    5 1
    1 2 3
    2 3 1
    1 4 5
    1 5 9
    
    예상 출력
    14
    
  2. 예제 2

    입력
    5 2
    1 2 3
    2 3 1
    1 4 5
    1 5 9
    
    예상 출력
    18