문제
백준 23894
설명
합성함수와 쿼리 문제의 버전업이다. 다행히도 f(1)
만 변하므로, 1 이 나오는 루프구간을 찾아서 이후 탐색 범위에서 제외시키면 평범한 희소배열 문제가 된다.
이때 다른 수에서 1로 가는 거리를 미리 저장해 놓으면 2~3 배 정도 더 빠르다. 이는 to1[]
이 최대 두번 호출되는 것도 있지만, 매번 while
문 내에서 1의 루프구간을 찾게되면 if
문 등으로 코드 자체가 느려지기 때문에 생기는 차이로 보인다.
시간 복잡도
O(\((\mathrm{N} + \mathrm{Q})\log{\mathrm{M}}\))
코드
댓글남기기