1238번 - 파티
우선순위 큐를 priority_queue<pii, vector<pii>, greater<pii>> pq; 이렇게 잡으니 시간 초과이고
priority_queue<int> pq 이렇게 잡고 -로 가중치를 주니 통과네요
많은 차이가 나는것인가요?
pair 끼리 비교할 때는
first 를 먼저 비교하고, first가 같으면 second를 비교합니다
저 위의 소스에서는 first에 정점 번호를, second에 거리를 넣고 있는데
이러면 pq.top() 의 값은 거리가 가장 짧은게 이니라 "정점번호가 가장 작은 것" 이 나오겠죠.
따라서 다익스트라 알고리즘이라고 할 수 없기 때문에 TLE가 나는 것 같네요
first랑 second를 바꿔보세요
바보같은 짓을 했네요 지적해주셔서 감사합니다 !
댓글을 작성하려면 로그인해야 합니다.
kkw564 6년 전 1
우선순위 큐를 priority_queue<pii, vector<pii>, greater<pii>> pq; 이렇게 잡으니 시간 초과이고
priority_queue<int> pq 이렇게 잡고 -로 가중치를 주니 통과네요
많은 차이가 나는것인가요?