BOJ 8052 Agents
BOJ 8052 Agents
문제 내용
개의 정점과 개의 방향 간선을 갖는 방향 그래프가 주어집니다.
에이전트 1은 번 정점에, 에이전트 2는 번 정점에 있습니다. 각 에이전트는 하루가 지날 때마다 하나의 간선을 따라 이동할 수 있으며, 연속 이틀 동안 같은 정점에 머물 수 없습니다.
이때, 두 에이전트가 같은 날에 서로 같은 정점을 방문하는 데 걸리는 최소 시간을 구하세요.
입력
첫 번째 줄에는 정점의 수 과 간선의 수 이 주어집니다. (, )
두 번째 줄에는 두 에이전트가 현재 있는 정점의 번호 과 가 주어집니다. (, )
다음 줄에 걸쳐서, 각 간선의 출발 정점의 번호 와 도착 정점의 번호 가 주어집니다. (, )
중복된 간선은 주어지지 않습니다.
출력
두 에이전트가 만나는 것이 가능하다면, 두 에이전트가 만나는 데 걸리는 최소 일수를 출력합니다.
불가능하다면, NIE를 출력합니다.
문제 풀이
스포일러
일단 (에이전트 1의 위치, 에이전트 2의 위치)의 쌍을 하나의 상태로 볼 수 있습니다. 그러면 각 상태에서의 상태 전이의 개수는 최대 이므로, 단순 BFS로는 통과하기 어렵습니다.
이 전이의 개수를 으로 줄이기 위해, 에이전트 1과 에이전트 2를 번갈아서 움직이는 방법을 생각할 수 있습니다. 그러면 상태에는 누가 움직일 턴인지를 나타내는 3번째 값이 추가됩니다. 이제 BFS를 마친 뒤에, 각각의 도착점 에 대해 “두 에이전트가 모두 에 있고 에이전트 1이 움직일 차례"인 상태의 거리를 확인하여 최소의 절반을 출력하면 됩니다.
Last updated on