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 불변성을 유지하는 걸로 알고있는데 어디서 문제일까요?

hsw0194   2년 전

해결했습니다.

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