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

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

헤라클레스

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

요약
가중 무방향 그래프에서 1번 도시에서 출발해 12개의 필수 도시를 모두 방문하고 다시 1번 도시로 돌아오는 최단 폐보행을 구한다.
난이도

보통10점 중 6점

유형
그래프, 최단 경로, 동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

고대 그리스에는 nn개의 도시가 있고, mm개의 양방향 도로가 이들을 연결한다. 도로를 따라 이동하면 어떤 도시에서든 다른 도시로 갈 수 있다. 두 도시 사이에는 도로가 최대 하나 있고, 각 도로는 서로 다른 두 도시를 연결한다. 도로 ii의 길이는 cic_i이다.

헤라클레스는 에우리스테우스 왕의 명에 따라 1212개의 과업을 긴급히 수행해야 한다. 과업은 고대 그리스의 특정한 1212개 도시에서 수행해야 한다. 현재 헤라클레스는 이 1212개 도시에 속하지 않는 미케네에 있다. 헤라클레스는 가능한 한 빨리 과업을 수행하기 위해 최적의 여행 계획을 세우려고 한다. 이 계획에 따라 그는 1212개의 필수 도시를 모두 방문하고 미케네로 최소 시간에 돌아와야 한다.

헤라클레스가 여행에 필요한 최소 시간을 구하도록 도와주자. 헤라클레스는 길이가 cic_i인 도로를 cic_i의 시간에 지난다. 모든 도로는 임의의 횟수만큼 어느 방향으로든 지날 수 있고, 모든 도시는 임의의 횟수만큼 방문할 수 있다. 도시를 방문하는 순서는 상관없다. 과업을 수행하는 시간은 고려하지 않는다.

입력

첫째 줄에 정수 nn과 mm이 주어진다. (13≤n≤10513 \le n \le 10^5, n−1≤m≤min⁡(n(n−1)2,105)n-1 \le m \le \min(\frac{n(n-1)}{2}, 10^5))

다음 mm개 줄에 도로가 주어진다. 그중 ii번째 줄은 <<aia_i bib_i cic_i>> 형태이며, ii번째 도로가 번호 aia_i인 도시와 번호 bib_i인 도시를 연결하고 길이가 cic_i임을 뜻한다. (1≤ai,bi≤n1 \le a_i, b_i \le n, ai≠bia_i \ne b_i, 1≤ci≤10001 \le c_i \le 1000) 두 도시 사이에는 도로가 최대 하나 있고, 어느 도시에서든 다른 도시로 갈 수 있음이 보장된다.

미케네의 번호는 11이고, 헤라클레스가 과업을 수행해야 하는 도시의 번호는 22부터 1313까지이다.

출력

여행에 필요한 최소 시간을 정수 하나로 출력한다.

힌트

예제의 최적 여행 계획 중 하나는 다음과 같다. 1→2→3→4→3→2→1→14→5→8→7→1 \to \mathbf{2} \to \mathbf{3} \to \mathbf{4} \to 3 \to 2 \to 1 \to 14 \to \mathbf{5} \to \mathbf{8} \to \mathbf{7} \to →6→9→10→11→10→15→12→13→14→1.\to \mathbf{6} \to \mathbf{9} \to \mathbf{10} \to \mathbf{11} \to 10 \to 15 \to \mathbf{12} \to \mathbf{13} \to 14 \to 1.

예제1

  1. 예제 1

    입력
    15 20
    1 2 5
    2 3 6
    3 4 7
    1 14 10
    14 5 3
    5 6 10
    5 7 20
    5 8 2
    6 7 2
    6 8 20
    7 8 5
    6 9 5
    9 11 20
    10 9 5
    10 11 5
    10 15 7
    15 12 6
    12 13 8
    13 14 9
    15 4 1000
    
    예상 출력
    118