답은 알고리즘 뿐이야!

[BOJ 16978] 수열과 쿼리 22 본문

알고리즘/백준문제풀이

[BOJ 16978] 수열과 쿼리 22

skyde47 2020. 9. 4. 17:47

문제 출처 : https://www.acmicpc.net/problem/16978

 

풀이 :


세그먼트 트리 문제입니다.

 

K번째 1번 쿼리가 진행 되었을때의 A[i] ~ A[j] 구간합을 구하는 문제인데,

세그먼트 트리 자체에 K번째 까지의 진행사항을 저장하기에는 너무 많은 메모리를 요구하기 때문에 다른 방안을 찾아야 합니다.

 

그래서 우리는 쿼리를 모두 받아놓고 K번째 1번쿼리 <- 를 기준으로 2번 쿼리를 정렬한 후 K값이  증가할 때 마다 1번 쿼리를 실행 시킴으로써 빠른 속도로 쿼리를 처리할 수 있습니다.

 

이처럼 쿼리를 모두 받아놓고 쿼리를 실행시키는 것을 오프라인 쿼리라고 합니다.

 

 

'알고리즘 > 백준문제풀이' 카테고리의 다른 글

[BOJ 1525] 퍼즐  (0) 2021.01.19
[BOJ 11495] 격자 0 만들기  (0) 2020.09.03
[BOJ 2365] 숫자판 만들기  (0) 2020.09.03
[BOJ 1760] N-Rook  (0) 2020.09.03
[BOJ 2414] 게시판 구멍 막기  (0) 2020.09.03
Comments