sochun1518   3년 전

[ 정의 ]

주어진 그래프에서 x가 y번 블록을 넘어트리면 push[x] 배열에 y를 추가하고, pushed[y] 배열에는 x를 추가했습니다.

push[i] := i번 블록이 넘어지면서 넘어트리는 블록들

pushed[i] := i번 블록을 넘어트리는 블록들

[ 아이디어 ]

자기 자신을 넘어트리는 블록이 가장 적으면서 자기 자신이 넘어지면서 넘어트리는 블록이 가장 많은 블록이 무조건적으로 유리하다고 판단했습니다.

그래서 priority_queue를 이용해 

1) 나를 넘어트리는 블록이 가장 적은 블록

2) 내가 넘어트리는 블록이 가장 많은 블록

을 1, 2순위 기준으로 부여해서 해당 블록을 BFS탐색을 진행했습니다.

40% 에서 틀렸습니다를 받으며 게시물에 있는 예제 케이스는 다 통과했습니다. 

조언 주시면 감사합니다!

nuclear852   3년 전

반례 첨부합니다.

양방향 단선일경우 어떻게 처리해야할까요?

고민을 한 번 해보시면 좋을 것 같습니다.

sochun1518   3년 전

답글 감사드립니다!!

좋은 반례가 있었군요....!!

다시 고민해보도록 하겠습니다 :))

댓글을 작성하려면 로그인해야 합니다.