쿼리: 왼쪽 상단이 (x1, y1)이고 오른쪽 끝이(x2, y2)인 직사각형 부분배열에
주어진 숫자 x를 모두 더하라.
단 모든 쿼리를 O(NM)에 처리해야 한다.
N: length of row
M: length of column
두 개의 쿼리가 있을 때,
더해야 하는 숫자를 x, 범위를 (1, 1) ~ (3, 3) 이라고 하자.
다른 하나는 더해야 하는 숫자를 y, 범위를 (0, 0) ~ (3, 2) 라고 하자.
| y | 0 | -y | 0 | 0 |
|---|---|---|---|---|
| 0 | x | 0 | 0 | -x |
| 0 | 0 | 0 | 0 | 0 |
| -y | 0 | y | 0 | 0 |
| 0 | -x | 0 | 0 | x |
이제 각 배열에 다음의 점화식을 수행하면
두 쿼리를 각각 하나씩 수행한 것과 같은 결과를 낼 수 있다.