3
큰 격자 10^5 * 10^5
을 고려하십시오. n = 10^8
데이터 (x, y, v)
에 대해 (x, y)
셀의 값이 v
인 것을 의미합니다. 다른 모든 셀에는 0
이 포함됩니다. 약 q = 10^5
에 대한 축 병렬 직사각형을 제공하는 쿼리가 요청됩니다. 출력은 그 직사각형 안의 셀에 포함 된 모든 값의 합이어야합니다. 이러한 쿼리를 처리하는 방법? 어떤 적합한 데이터 구조입니까?큰 격자에 대한 사각형 쿼리의 요소 합계가
데이터를 x 좌표로 정렬 할 수 있는데 평균적으로 좋을 것입니다. 하지만 최악의 경우는 O(nq)
입니다. 어떤 도움이 필요합니까?
이 종류의 범위 쿼리에 대한 일반적인 해결책은 [kd trees] (https://en.wikipedia.org/wiki/K-d_tree)입니다. –