1. 문제 : https://www.acmicpc.net/problem/13418
2. 풀이 : Kruskal
3. 시간복잡도 : O(ElogE)
4. 설명
문제의 조건은 다음과 같다.
1) 피로도 계산은 최초 조사된 길을 기준으로 한다.
2) 최악의 코스 = 오르막 길이 가장 많은 코스
3) 최적의 코스 = 오르막 길이 가장 적은 코스
각 간선에 오르막길인 경우엔 '0'을 내리막길인 경우엔 '1'의 가중치를 부여하고, 간선들을 가중치의 오름차순으로 정렬하여 최소 신장 트리를 생성하면 그림[1]과 같이 최악의 코스가 된다.
그림[1]의 최악의 코스에서 오르막길의 갯수는 3개이며, 피로도는 9가 된다.
간선들을 가중치의 내림차순으로 정렬하여 최대 신장 트리를 생성하면 그림[2]와 같이 최적의 코스가 된다.
그림[2]의 최적의 코스에서 오르막길의 갯수는 1개이며, 피로도는 1이 된다.
따라서, 최악의 코스와 최적의 코스의 피로도 차이는 8이 된다.
5. 코드
[백준][BOJ1944] 복제 로봇 (0) | 2021.07.05 |
---|---|
[백준][BOJ2406] 안정적인 네트워크 (0) | 2021.06.19 |
[백준][BOJ14621] 나만 안되는 연애 (0) | 2021.06.19 |
[백준][BOJ9373] 복도 뚫기 (0) | 2021.06.14 |
[백준][BOJ1647] 도시 분할 계획 (0) | 2021.06.12 |
댓글 영역