https://www.acmicpc.net/problem/11505
- 2월동안 187문제 풀기(지난달 누적 87개) (63/187)
- 세그먼트 트리, 리뷰용 문제(https://codeforces.com/blog/entry/18051)
- 완벽한 바이너리 Tree가 만들어진다.
- 업데이트 시에는 해당 위치의 모든 부모들(절반의 절반들)을 모두 업데이트 한다.
- 쿼리 시에는 왼쪽과 오른쪽 위치에서 계속 좁혀오되, 왼쪽에서는 홀수번, 오른쪽에서는 짝수번 트리를 찾는다.
- 왼쪽 기준 홀수면(예를들어 5->2) 나눠졌을때 5를 루트로 하는 트리가 범위에서 벗어나게 된다.
- 오른쪽 기준 짝수면(예를들어 12->6) 12가 6이 되었을때 범위가 더 늘어나버린다. (6은 12,13을 포함) 그러므로 12는 계산해 버리고 1을 뺀 뒤 나눠서 5로 만든다.
1 |
|