4196번 - 도미노
[ 정의 ]
주어진 그래프에서 x가 y번 블록을 넘어트리면 push[x] 배열에 y를 추가하고, pushed[y] 배열에는 x를 추가했습니다.
push[i] := i번 블록이 넘어지면서 넘어트리는 블록들
pushed[i] := i번 블록을 넘어트리는 블록들
[ 아이디어 ]
자기 자신을 넘어트리는 블록이 가장 적으면서 자기 자신이 넘어지면서 넘어트리는 블록이 가장 많은 블록이 무조건적으로 유리하다고 판단했습니다.
그래서 priority_queue를 이용해
1) 나를 넘어트리는 블록이 가장 적은 블록
2) 내가 넘어트리는 블록이 가장 많은 블록
을 1, 2순위 기준으로 부여해서 해당 블록을 BFS탐색을 진행했습니다.
40% 에서 틀렸습니다를 받으며 게시물에 있는 예제 케이스는 다 통과했습니다.
조언 주시면 감사합니다!
반례 첨부합니다.
양방향 단선일경우 어떻게 처리해야할까요?
고민을 한 번 해보시면 좋을 것 같습니다.
답글 감사드립니다!!
좋은 반례가 있었군요....!!
다시 고민해보도록 하겠습니다 :))
댓글을 작성하려면 로그인해야 합니다.
sochun1518 3년 전
[ 정의 ]
주어진 그래프에서 x가 y번 블록을 넘어트리면 push[x] 배열에 y를 추가하고, pushed[y] 배열에는 x를 추가했습니다.
push[i] := i번 블록이 넘어지면서 넘어트리는 블록들
pushed[i] := i번 블록을 넘어트리는 블록들
[ 아이디어 ]
자기 자신을 넘어트리는 블록이 가장 적으면서 자기 자신이 넘어지면서 넘어트리는 블록이 가장 많은 블록이 무조건적으로 유리하다고 판단했습니다.
그래서 priority_queue를 이용해
1) 나를 넘어트리는 블록이 가장 적은 블록
2) 내가 넘어트리는 블록이 가장 많은 블록
을 1, 2순위 기준으로 부여해서 해당 블록을 BFS탐색을 진행했습니다.
40% 에서 틀렸습니다를 받으며 게시물에 있는 예제 케이스는 다 통과했습니다.
조언 주시면 감사합니다!