hemilton cycle circuit

5
Hemilton Cycle Circuit Steve Paks

Upload: jonghoon-park

Post on 18-Jul-2015

68 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Hemilton cycle circuit

Hemilton Cycle Circuit

Steve Paks

Page 2: Hemilton cycle circuit

Question

• 문제는 올림피아드 대회가 모두 해외에서 열리는 관계로 비행기 값이 굉장히 많이 들어간다는 것이다. 결국에는 집

으로 다시 돌아와야 하는데, 모든 대회에 1번씩만 참가하고 집으로 돌아오는 경비를 가장 최소화하고 싶다. 도경이

는 이것을 해결하지 못하면, 대회에 참가하기가 어렵게 된다. 대회는 참가하기만 하면 언제든지 알고리즘 문제를 풀

수 있기 때문에 경비를 계산하는 것 이외의 사항은 고려하지 않아도 된다.

• 입력 형식

첫 줄은 참가하는 대회의 수 N(1≤N≤12)을 입력 받는다. 이때, 출발지(집)는 1번으로 한다.

둘째 줄은 N X N 크기의 대회 개최지와 개최지를 이동하는 항공료(0 ≤ 항공료< 100)가 나온다. 각 항공료는 한 칸

의 공백으로 구분된다. 만약에 개최지에서 개최지로 이동할 수 있는 항공로가 없다면 항공료의 값을 0으로 표시한

다.

• 출력 형식

집에서 출발하여 전체 대회를 모두 참가하고 돌아올 때, 최소의 항공료를 출력한다.

• 입력 예

• 출력 예

5

0 14 4 10 20

14 0 7 8 7

4 5 0 7 16

11 7 9 0 2

18 7 17 4 0

30

Hint.

비용 (경로)

10 (1->4)

+ 2 (4->5)

+ 7 (5->2)

+ 7 (2->3)

+ 4 (3->1)

= 30

Page 3: Hemilton cycle circuit

Algorithm

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4 0 1 2 3 4

0 1 2 3 4 0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4 0 1 2 3 4

0 1 2 3 4 0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

Page 4: Hemilton cycle circuit

Algorithm(Cont’d)

getMinPath

0 → 1 : 14

+ 1 → 2 : 7

+ 2 → 3 : 7

+ 3 → 4 : 2

+ 4 → 0 : 18

= 48 = MinPath

5

0 14 4 10 20

14 0 7 8 7

4 5 0 7 16

11 7 9 0 2

18 7 17 4 0

getMinPath

0 → 1 : 14

+ 1 → 3 : 8

+ 3 → 2 : 7

+ 2 → 4 : 16

+ 4 → 0 : 18

= 63 = DropPath

getMinPath

0 → 1 : 14

+ 1 → 2 : 7

+ 2 → 4 : 7

+ 4 → 3 : 4

+ 3 → 0 : 11

= 43 = MinPath

getMinPath

0 → 1 : 14

+ 1 → 3 : 8

+ 3 → 4 : 2

+ 4 → 2 : 17

+ 2 → 0 : 14

= 55 = DropPath

Page 5: Hemilton cycle circuit

Core methods

• makeAvailableCircuit()– 가능한 루트를 찾음

• containsSite(int)– 사이트를 반복해서 방문하는 지 검토

• findMinCircuit()– 모든 사이트를 순회 한 경우

– 지나 온 경로의 비용을 합하여 가능한 다른 경로에서 발생한 비용과 비교 후 작으면 최소경로로 지정