문제 링크
- http://icpc.me/1210
문제 출처
- 2008 BalticOI Day2 3번
사용 알고리즘
- Network Flow
- Min Cut
- Max Flow
- BFS
풀이
톨게이트를 정점, 도로를 간선이라고 두고 그래프를 만들어봅시다.
문제에서 톨게이트를 막으라고 했기 때문에 Minimum Vertex Cut을 생각해볼 수 있습니다.
일단 정점 분할을 하고 플로우를 돌려서 Minimum Vertex Cut을 구합시다.
이제 막아야 하는 톨게이트 번호를 구해야 합니다.
Source에서 시작해 용량이 남은 간선만을 이용해 BFS를 돌려줍시다.
정점 V를 분할한 두 정점을 inV와 outV라고 할 때, inV는 방문할 수 있고 outV는 방문할 수 없다면 V를 막아야 합니다.
전체 코드
1 |
|