문제
백준 11112
설명
테스트 케이스마다 거리 계산하면 망함. 가능한 모든 경우가 많지 않으므로, 모든 경우에 대해서 가장 짧은 거리를 구해놓고, 테스트 케이스마다 한번에 확인하는 방식으로 처리해야함.
사실 이 문제를 기록하는 이유는 다른 블로그 에서 본 Priority Queue + Failed Cases 의 아이디어 때문임. 각각의 최적화가 독립적으로 시행되었을 경우는 TLE 가 나지만, 동시에 처리되었을 경우는 통과함.
그래서 궁금해서 Test Case 가 하나뿐인 버전인 이 문제 에 가서 Priority Queue 버전은 속도차이가 나는지 확인해봤는데, 별로 차이가 안남. 오버헤드가 커서 그렇지 경우의 수가 더 많으면 달라지는건지 잘 모르겠음.
아래는 위 블로그에서 쓴걸 c++ 버전으로 바꾼 것
코드
시간 복잡도
O(\(9!\))
그냥 대충 9칸 짜리 조합으로 계산했음.
실제로는 더 작을 것임.
코드
댓글남기기