Problem Solving
boj 2487 : 섞기 수열
1ssrek
2016. 8. 12. 19:52
boj 2487 : 섞기 수열
https://www.acmicpc.net/problem/2487
각 cycle 길이의 lcm을 출력해주면 된다.
예를들어 섞기수열이 3 2 5 6 1 4인 경우
cycle(1) = 3 (1->3->5->1),
cycle(2) = 1 (2->2)
cycle(3) = 3
cycle(4) = 2 (4->6->4)
cycle(5) = 3
cycle(6) = 2
이므로 lcm(cycle(1),cycle(2), ..., cycle(6))인 6을 출력해주면 정답.
각각 숫자에 대한 cycle 수를 구하는 것 보단
1의 cycle을 구하고 cycle의 경로에 있는 1,3,5의 cycle 수도 모두 같은 값으로 해주면 훨씬 빠르다.