문제 링크
- https://icpc.me/26263
사용 알고리즘
- Suffix Array
- HLD
풀이
트리에서 두 개의 경로가 주어지면, 두 경로의 최장 공통 접두사의 길이를 구하는 문제입니다.
HLD를 이용하면 경로를 $O(\log N)$개의 부분 문자열로 쪼갤 수 있습니다. 두 경로를 $O(\log N)$개의 부분 문자열로 쪼갠 다음, 앞에 있는 부분 문자열부터 차례대로 접두사가 얼마나 일치하는지 구하면 됩니다.
두 문자열의 최장 공통 접두사를 구하는 것은 LCP 배열에서 RMQ를 하면 됩니다.
전체 코드
1 |
|