sc3289   2년 전

현재

1. 위상정렬

2. 각 node별 등수

3. 메모리를 사용해 불필요한 방문은 최대한 제거하면서 중복 방문 허용하며 bfs 진행

-> 등수가 target node보다 높으면(우선순위가 낮으면) 방문하지 않음

-> 방문하고자 하는 node에 저장된 value가 현재 타고온 경로의 value보다 해당 경로는 더 이상 진행하지 않음(동시에 건설이 가능했던 경로므로)

이런식으로 bfs로 완전탐색을 진행했으며, bfs돌릴때마다 큐는 초기화를 해뒀습니다. 배열또한 index를 다 꼼꼼하게 확인했는데...

어디서 터지는건지 모르겠습니다.

제일 의심스러운애는 int q[200000][2]; 이 부분인데,

중복방문은 허용하지만 불필요한 경우라고 판단되면 바로 컷하기 때문에 큐가 터질 것이라고는 생각되지 않습니다. 혹시 몰라서 200,000의 크기로 잡아주긴했지만... 똑같이 런타임에러가 뜹니다.

어디서 터지고 있는 걸까요?... 

코드가 조금 난잡하긴 하지만 도움 부탁드립니다.

sc3289   2년 전

다시 드는 생각이지만.. in-degree를 이용해서 위상정렬을 했다면 bfs를 안쓰고 풀 수 있었을 문제네요..

하지만 혹시라도 위 코드에서 문제점을 찾아주신다면 좋겠습니다!.

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