인공 지능 접두사 합계

여기에 이미지 설명 삽입

배움의 가장 큰 이유는 평범함을 버리는 것입니다 하루 일찍 삶이 더 화려해질 것이고 하루가 지나면 하루 더 평범해질 것입니다.

공부일기

1. 접두사란 무엇이며

         접두사 합계는 배열의 항목 첨자를 포함하여 모든 배열 요소의 합계  입니다 .

b[]를 접두사 합 배열, a[]를 원래 배열이라고 하면 이 문장에 따라 접두사 합의 정의 및 재귀 공식을 얻을 수 있습니다.

정의 재귀
1차원 접두사 합계  b[i]=\sum_{j=0}^{i}a[j] b[i]=b[i-1]+a[i]
2차원 접두사 및 b[x][y]=\sum_{i=0}^{x}\sum_{j=0}^{y}a[i][j] b[x][y]=b[x-1][y]+b[x][y-1]-b[x-1][y-1]+a[x][y]

2, 1차원 접두사와 

        

        위의 정의에 따르면 sum[i] = sum[i-1] + a[i]를 쉽게 얻을 수 있습니다.   

이런 식으로 첫 번째 i 숫자의 합을 얻을 수 있습니다. 위 식에 따르면 O(1)을 사용하여 구간 [i, j]의 구간 합을 찾을 수 있습니다.     합계[i,j]=b[j]-b[i-1]

 

일반적으로 간격 [L, R]에서 요소의 합을 찾는 데 사용됩니다.

ans[1]=ans[0]+q[1]

ans[2]=ans[1]+q[2]

...... ......

ans[i]=ans[i-1]+q[i]

[L,R] tmp=ans[R]-ans[L-1] 사이의 요소 합 

3. 2차원 접두사 및 예제

원래 배열 q[ ][ ]

0

1

2

4

5

6

7

8

9

1

2

1

0

-1

0

2

0

0

2

1

0

0

1

2

1

1

0

0

2

1

1

1

-1

0

0

0

4

1

1

-1

0

-1

1

1

0

0

5

1

1

2

1

1

4

0

0

6

0

0

0

0

0

0

0

0

0

7

0

0

0

0

0

0

0

0

0

접두사 및 배열 ans[ ][ ]

0

1

2

4

5

6

7

8

1

1

4

4

2

2

4

5

6

7

4

7

9

13

15

4

5

(i-1,j)

5

6

(i,j-1)

( i  , j)

6

7

求ans[ ][ ] ans[I,j]=ans[i-1,j]+ans[I,j-1]-ans[i-1][j-1]+q[i][j] :

0

1

2

4

5

6

7

8

1

2

(x1-1,y1-1)

(x1-1,y2)

(x1,y1)

4

5

(x2,y1-1)

(x2,y2)

6

7

 

지정된 사각형의 요소 합계를 찾습니다.

왼쪽 위(x1,y1) 오른쪽 아래(x2,y2)

tmp=년[x2][y2]-년[x2][y1-1]-년[x1-1][y2]+년[x1-1][y1-1] 

추천

출처blog.csdn.net/m0_63794226/article/details/126687528