1766번 - 문제집
테케 통과했고
6 75 65 22 44 32 16 11 3
도 정상적으로 출력합니다.
AC받은 코드에서는 indegree가 0인애들만 heapq에 유지하는데
아래 코드는 처음부터 heapq에 모든 문제가 있지만 indegree가 가장 작고,문제번호가 가장 낮은 문제가 앞에 오는 heapq입니다.
문제를 못푸는 경우는 없으니 가장 indegree가 낮고 문제번호가 빠른
p를 가져오고 p번을 풀고 풀 수있는 문제들의 indgree를 1씩 낮춰주고
p의 indegree를 inf로 바꿔서 선택되지 않게합니다.
그 다음 heappop을 하면 , 방금 선택했던 p가 큐에서 나가고 heapify가 되니 그다음에도 정상적으로 선택가능할거라고 생각했는데
다르게 나오네요. heappop이 가장 먼저 맨 앞에 있는것을 날리고 그 뒤 heap 불변성을 유지하는 걸로 알고있는데 어디서 문제일까요?
해결했습니다.
댓글을 작성하려면 로그인해야 합니다.
hsw0194 2년 전
테케 통과했고
6 7
5 6
5 2
2 4
4 3
2 1
6 1
1 3
도 정상적으로 출력합니다.
AC받은 코드에서는 indegree가 0인애들만 heapq에 유지하는데
아래 코드는 처음부터 heapq에 모든 문제가 있지만 indegree가 가장 작고,문제번호가 가장 낮은 문제가 앞에 오는 heapq입니다.
문제를 못푸는 경우는 없으니 가장 indegree가 낮고 문제번호가 빠른
p를 가져오고 p번을 풀고 풀 수있는 문제들의 indgree를 1씩 낮춰주고
p의 indegree를 inf로 바꿔서 선택되지 않게합니다.
그 다음 heappop을 하면 , 방금 선택했던 p가 큐에서 나가고 heapify가 되니 그다음에도 정상적으로 선택가능할거라고 생각했는데
다르게 나오네요. heappop이 가장 먼저 맨 앞에 있는것을 날리고 그 뒤 heap 불변성을 유지하는 걸로 알고있는데 어디서 문제일까요?