| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 83 | 36 | 31 | 40.789% |
Arborescence $G=(V,A)$는 다음 조건을 만족하는 방향 그래프를 의미한다.
간선에 가중치가 있고 사이클(cycle)이 없는 방향 그래프 $G=(V,A)$와 정점 $r$이 주어진다. 주어진 그래프의 각 정점에는 1ドル$부터 $N$까지의 번호가 붙어있다. 이때, 정점 $r$을 루트 노드로 하는 Spanning Arborescence 중 간선 가중치의 합이 최소인 것을 구하려고 한다.
이와 관련된 알고리즘으로 $O(|V||A|)$에 작동하는 Chu-Liu-Edmonds’ Algorithm, Tarjan이 이를 개선하여 시간 복잡도를 $O(|A| \log |V|)$로 줄인 알고리즘이 있지만, 당연히 해당 알고리즘을 사용하라고 문제 낸 것은 아니다.
주어진 그래프에서 정점 $r$을 루트 노드로 하는 Spanning Arborescence의 간선 가중치 합의 최솟값을 구해보자.
첫 번째 줄에 정점의 개수 $N,ドル 간선의 개수 $M,ドル 루트로 삼아야 할 정점 $r$의 정점 번호가 공백으로 구분되어 주어진다. (1ドル \le N \le 500,000円$; 0ドル \le M \le 1,000円,000円$; 1ドル \le r \le N$)
두 번째 줄부터 $M$개의 줄에 걸쳐 $M$개의 간선에 대한 정보를 나타내는 세 정수 $u,ドル $v,ドル $c$가 공백으로 구분되어 주어진다. 이는 가중치가 $c$인 정점 $u$에서 정점 $v$로 가는 간선이 있음을 의미한다. (1ドル \le u, v \le N$; $u \ne v$; 1ドル \le c \le 1,000円,000円,000円$)
주어진 그래프의 임의의 두 정점을 연결하는 간선의 개수는 최대 한 개이며, 주어진 그래프에서 사이클(cycle)은 존재하지 않는다.
정점 $r$을 루트 노드로 하는 Spanning Arborescence의 간선 가중치 합의 최솟값을 출력한다. 단, 정점 $r$을 루트 노드로 하는 Spanning Arborescence가 존재하지 않는다면 -1을 출력한다.
3 3 1 1 2 1 1 3 2 2 3 3
3
3 3 1 1 2 1 1 3 4 2 3 3
4
2 1 1 2 1 10
-1
University > 신촌지역 대학생 프로그래밍 대회 동아리 연합 > 2024 신촌지역 대학생 프로그래밍 동아리 연합 여름 대회 (SUAPC 2024 Summer) 연습 세션 PC번