문제 링크
- http://icpc.me/16118
문제 출처
- 2018년 서울대학교 프로그래밍 경시대회 div.1 A번
- 2018년 서울대학교 프로그래밍 경시대회 div.2 H번
사용 알고리즘
- 다익스트라 알고리즘
시간복잡도
- O(M log N)
풀이
보자마자 최단 경로 문제인 것을 알 수 있습니다.
다익스트라를 “적당히” 돌려줘서 최단 경로를 찾아주면 됩니다.
여우는 그냥 다익스트라 한 번 돌리면 끝나기 때문에 설명을 생략합니다.
늑대는 처음에는 빠르게, 그 다음에는 느리게 달리는 것을 반복합니다.
그래서 한 개의 노드를 fastNode/slowNode로 나누어서 그래프를 새로 만든 뒤 다익스트라를 돌립니다.
n번째 노드의 fastNode는 2n, slowNode는 2n+1로 정했습니다.
새로 만든 그래프에서 다익스트라를 돌린 뒤, 여우의 결과와 비교 후 답을 구하면 됩니다.
전체 코드
1 |
|