2018. 1. 5. 23:32, 알고리즘/BOJ
https://www.acmicpc.net/problem/1504
각 정점간의 최단 경로는 플로이드로 찾을 수 있습니다. O(N^3)인데 그럭저럭 넉넉합니다. 거쳐야하는 점을 v1, v2라고 하면 dist[1][v1]+dist[v1][v2]+dist[v2][N], dist[1][v2]+dist[v2][v1]+dist[v1][N]중 작은 값을 출력하면 됩니다. 단, 아예 도달할 수 없는 곳임을 확인하기 위한 과정은 포함이 되어있어야 합니다. 저는 연결된 두 점의 거리가 아무리 길어봐야 N*1000(<=800000) 임을 활용해서 도달할 수 있는 곳인지 아닌지를 체크했습니다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 1764번: 듣보잡 (0) | 2018.01.05 |
---|---|
[BOJ] 14488번: 준오는 급식충이야!! (0) | 2018.01.05 |
[BOJ] 10974번: 모든 순열 (0) | 2018.01.05 |
[BOJ] 11404번: 플로이드 (0) | 2018.01.05 |
[BOJ] 1717번: 집합의 표현 (0) | 2018.01.05 |
[BOJ] 2042번: 구간 합 구하기 (0) | 2018.01.03 |
Comments