본문 바로가기

알고리즘/Baekjoon

네트워크 유량. [2316]

[1. 문제 설명]

https://www.acmicpc.net/problem/2316


[2. 풀이 접근]

유량 네트워크로 접근해야 한다.

  • 단, 특정 도시(이하 정점) 을 여러번 지나갈 수 없다.
  • 포드-풀커슨 알고리즘은 간선의 유량에 대해서 동작한다.
  • 따라서, 정점을 간선처럼 만들어야 한다.
    # 이하 코드 주석 참조.

주의 할 점.

  • 정점을 간선처럼 만들 때는, 연결 된 두 도시를 입력받는 시점에서 만들면 안된다.
  • 모든 입력을 받고 나서, edge 를 순회하면서 확인해야 한다.
    => 원하는 형태 : {u1 -> u2} -> {v1 -> v2} 
    => 잘못된 형태 : {u1 -> u2} <- {v1 -> v2} 
                                              \
                                               > {z1 -> z2}
    #  즉, 이미 정점 u 는 사용하였는데, 정점 v 에서 u2 와 연결되고, u2->z1 간선의 잔여 용량이 있어
       u 를 사용하는 꼴이 되버릴 수 있다.

[3. 코드]

 

'알고리즘 > Baekjoon' 카테고리의 다른 글

동적계획법. [11727]  (0) 2023.05.24
네트워크 유량. [11405]  (0) 2023.05.17
네트워크 유량. [17412]  (0) 2023.05.09
kmp. [13506]  (0) 2023.05.02
kmp. [7575]  (0) 2023.04.27