문제 링크
- http://icpc.me/6241
문제 출처
- 2007 USACO US Open Gold 2번
사용 알고리즘
- Network Flow
- Max flow
풀이
만약 문제에서 음료수가 없고, 소와 음식만 주어진다면 이분 매칭으로 풀 수 있습니다.
이 문제는 어떻게 풀어야 할지 생각해봅시다.
소와 음식만 주어졌을 때는 왼쪽에 음식, 오른쪽에 소를 놓고 이분 그래프를 그릴 수 있습니다.
소와 음료수만 주어졌을 때는 왼쪽에 소, 오른쪽에 음식을 놓고 이분 그래프를 그릴 수 있습니다.
그러면 음식, 소, 음료수가 주어질 때는 왼쪽에 음식, 중간에 소, 오른쪽에 음료수를 놓고 Max Flow를 구하면 되겠네요.
단, 소는 한 번만 선택되어야 하니까 소는 정점 분할을 해야합니다.
전체 코드
1 |
|