문제 링크
- http://icpc.me/2316
사용 알고리즘
- Max Flow
시간복잡도
- O(VE2)
풀이
한 번 방문한 도시는 다시 방문하지 않는다는 것은 정점에도 용량이 존재하며, 용량은 1임을 알 수 있습니다.
흔히 정점 분할이라는 기법을 사용하면 됩니다.
플로우 문제에서 정점 분할이란, 하나의 정점을 in정점과 out정점으로 분할한 뒤, 두 정점을 이어주는 간선을 만들어 정점에 용량을 부여하는 것과 같은 효과를 내는 기법을 말합니다.
이 문제에서는 in정점과 out정점을 잇는 간선의 용량을 1로 정해주면 됩니다.
전체 코드
1 |
|