문제 링크
- http://icpc.me/9345
문제 출처
- 2013 ACM-ICPC Thailand G번
사용 알고리즘
- Segment Tree
시간복잡도
- 각 테스트케이스 별로 O(m log n)
풀이
이 문제는 두 가지 쿼리가 주어집니다.
- A번째 DVD, B번째 DVD swap
- A~B DVD가 존재하는지 확인 (순서는 상관 없다.)
이 문제는 구간의 최댓값과 최솟값을 모두 구해준 뒤, 최솟값이 A와 같은지와 최댓값이 B와 같은지만 비교해주면 됩니다.
Min Segment Tree와 Max Segment Tree를 따로 구현하면 코드가 길어지기 때문에 두 개를 한 번에 구해주는 Segment Tree를 만들어서 문제를 풀도록 하겠습니다.
전체 코드
1 |
|