Module: 동적 그래프 프로그래밍


Problem

5 /7


DAG 바로가기

Theory Click to read/hide

동적 프로그래밍을 사용하는 솔루션에서는 역학이 계산되는 순서가 중요합니다(현재 값이 의존하는 값을 먼저 계산해야 함).
따라서 방향성 비순환 그래프에 대해 동적 프로그래밍을 사용해야 하는 경우 초기에 그래프의 위상 정렬을 구성해야 합니다. 그런 다음 구성된 토폴로지 정렬 순서로 꼭지점을 정렬하여 역학을 계산합니다(문제에 따라 순회 순서는 소스에서 싱크로 또는 그 반대로 될 수 있음).
 
 

Problem

방향성 가중 비순환 그래프가 제공됩니다. 최단 경로를 찾는 데 필요합니다.
정점 s에서 정점 t까지.

입력:
입력 파일의 첫 번째 줄에는 4개의 정수 n, m, s 및 t - 각각 정점 수, 그래프의 가장자리, 초기 및 최종 정점(1 <= n <= 100000; 0 <= m <= 200000; 1 <= s, t <= n).
다음 m 줄에는 한 줄에 하나씩 가장자리에 대한 설명이 포함됩니다. 
에지 번호 i는 각각 에지의 시작, 끝 및 길이인 세 개의 정수 bi, ei 및 wi( 1 <= b i, ei <= n;|wi| <= 1000). 
그래프에는 주기와 루프가 포함되어 있지 않습니다.

출력:
출력 파일의 첫 번째 줄에는 단일 정수(s에서 t까지의 최단 경로 길이)가 포함되어야 합니다. 
s에서 t까지의 경로가 없으면 "Unreachable"을 출력합니다.

예:
  <몸>
입력 출력
2 1 1 2
1 2 -10
-10
2 1 2 1
1 2 -10
접근 불가