본문 바로가기

세그먼트 트리2

[알고리즘 개념] 펜윅 트리(Fenwick Tree,Binary Indexed Tree) / JAVA 펜윅트리는 세그먼트 트리를 변형한 버전이므로, 세그먼트 트리를 먼저 알아야 이해가 잘 됩니다! 2022.01.17 - [Algorithm/개념] - [알고리즘 개념] 세그먼트 트리(Segment Tree) / Java 그리고 비트 단위로 연산하기 때문에, 비트 연산자를 알아야합니다! 2022.01.14 - [Algorithm/개념] - [알고리즘 개념] 비트마스크(Bitmask) 펜윅트리란(Fenwick Tree, Binary Indexed Tree, BIT) 세그먼트 트리에서 메모리를 절약한 트리. 시간복잡도 O(MlogN) 데이터 변경: O(logN) 연산: O(logN) 공간복잡도 O(N) 펜윅트리는 세그먼트 트리에서 우측 노드를 지운 트리입니다. 만약 5~7까지의 합을 알고 싶다면, 1~7까지의 .. 2022. 1. 17.
[알고리즘 개념] 세그먼트 트리(Segment Tree) / Java 세그먼트 트리란 특정 구간 내 데이터에 대한 연산(쿼리)을 빠르게 구할 수 있는 트리. ex) 특정 구간 합,최소값,최대값,평균값 등등 Segment : 부분.분할.나누다.분할하다. 시간복잡도 데이터 변경: O(logN) 연산: O(logN) 데이터 변경할때마다 M번 연산: O((logN +logN)*M) = O(MlogN) https://www.acmicpc.net/problem/2042 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net 문제 어떤 N.. 2022. 1. 17.