만드는 중입니다

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

산봉우리와 계곡

시간 제한7초메모리 제한512 MB

요약
난이도 1인 평지 길이 이루는 신장 트리 위에서 N개 지점을 모두 방문하는 경로의 최소 총 난이도를 구합니다.
난이도

어려움10점 중 8점

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

문제

잘 알려진 지형을 따라 긴 하이킹 여행을 계획하고 있습니다. 가보고 싶은 장소는 NN곳이고, 이들을 잇는 산책로는 MM개입니다. 각 산책로에는 양의 정수 난이도가 주어집니다.

이 산책로 체계에는 특별한 점이 있습니다. 난이도가 1인 산책로는 정확히 N−1N-1개이며, 이들은 완전히 평평한 길입니다. 나머지 산책로의 난이도는 모두 ⌈N/3⌉\lceil N/3 \rceil 이상이며, 매우 험한 산길입니다. (⌈x⌉\lceil x \rceil는 xx 이상인 가장 작은 정수입니다.)

난이도 1인 산책로만으로 임의의 두 장소 사이를 오갈 수 있습니다.

모든 장소를 최소 한 번씩 방문해야 합니다. 출발점은 어느 장소든 고를 수 있고, 도착점은 출발점과 다른 장소여야 합니다. 난이도의 합이 최소가 되는 경로를 구하세요. 난이도 dd인 산책로를 총 kk번 걸으면 합에 k⋅dk \cdot d가 더해집니다.

입력

첫째 줄에 공백으로 구분된 정수 NN(4≤N≤5000004 \le N \le 500000)과 MM(N−1≤M≤2000000N-1 \le M \le 2000000)이 주어집니다. 다음 MM개의 줄에는 각각 공백으로 구분된 정수 xix_i, yiy_i, wiw_i가 주어지며, 이는 장소 xix_i와 yiy_i를 난이도 wiw_i인 산책로가 잇는다는 뜻입니다(1≤i≤M1 \le i \le M, 0≤xi,yi≤N−10 \le x_i, y_i \le N-1, xi≠yix_i \ne y_i). 두 장소를 잇는 산책로는 최대 하나입니다. 각 wiw_i는 1이거나 ⌈N/3⌉≤wi≤N\lceil N/3 \rceil \le w_i \le N을 만족합니다.

출력

모든 장소를 적어도 한 번 방문하는 경로 중 난이도 합의 최솟값을 정수 하나로 출력합니다.

힌트

첫 번째 그림은 난이도 1인 산책로만 나타냅니다.

Flat trails

두 번째 그림은 모든 산책로를 난이도와 함께 나타냅니다.

All trails

세 번째 그림은 난이도 1인 산책로를 뺀 나머지 산책로를 나타냅니다.

Mountainous trails

최적 경로는 4 → 1 → 0 → 2 → 5 → 2 → 6 → 7 → 3 → 8이며, 총 비용은 1 + 1 + 1 + 1 + 1 + 1 + 3 + 1 + 1 = 11입니다. 이보다 낮은 난이도 합으로 모든 장소를 방문하는 경로는 없습니다.

예제1

  1. 예제 1

    입력
    9 10
    0 1 1
    0 2 1
    0 3 1
    1 4 1
    2 5 1
    2 6 1
    3 7 1
    3 8 1
    2 4 5
    6 7 3
    
    예상 출력
    11