cocoroco   5년 전

안녕하세요. 왜 시간초과인지 잘 모르겠습니다.

문제 풀이 방법은 이렇습니다.

  1. 모든 도시 사이의 가중치를 저장합니다. 두 지점이 특별한 도시라면 텔레포트 한 가중치 T와 멘하탄 거리를 비교해 작은 값을 넣습니다.
  2. M 번 다익스트라 알고리즘을 통해 최단거리를 찾습니다.
  3. 출력합니다.

가중치를 저장하는데 약 (1000*999)/2

다익스트라 를 M번 돌려 M * NlongN  시간복잡도로 최단거리를 구합니다.

즉 M,N <=1000 이므로 1000* 1000log1000 이라서

2초안에는 무조건 돌거 같은데 왜 시간초과인지 모르겠습니다.

chogahui05   5년 전

모든 도시의 가중치를 저장합니다. 

E = n^2

V = n

다익스트라 1번 돌 때 복잡도가 ElogV라면 m번 돌면 mElogV 아닌가요?

cocoroco   5년 전

아 그렇군요 제가 시간복잡도를 ElogN 말고 NlogN으로 계산하고 있었네요.

혹시 이문제 그럼 다익스트라로 풀지 못하는 건가요??

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