Blog Content

  • [자료구조/문제] 구간합, BOJ 2042, Binary Indexed Tree

    Category 개발레시피/└ Algorithm on 2017. 5. 28. 13:26

    문제 : https://www.acmicpc.net/problem/2042 N개의 주어진 수가 빈번히 변경이 일어날 때, 중간에 어떤 구간에 대해 합을 구하는 문제이다.구간에 대해 합, 최소, 최대를 해결하는 자료구조는- Segment Tree- Interval Tree- Indexed Tree가 있는데, 그 중 Binary Indexed Tree를 사용하여 문제를 풀도록 하겠다. 문제풀이1. 트리구성하기 1) 2의 n제곱으로 Tree를 구성해야 하므로, 실제 트리 개수를 구한다. 2) 트리의 맨 아래 노드, 위쪽 노드를 채운다.노드의 index가 i일때, 부모 노드의 번호는 i/2, 왼쪽 자식의 노드 번호는 i*2, 오른쪽 자식의 노드 번호는 i*2+1 이다.이 성질을 이용하여 tree의 값을 채운다...

    Read more